*****************************************************************************
                       Semantic Analysis of SPARK Text
                             Examiner GPL Edition

*****************************************************************************



SPARK Simplifier GPL 2012
Copyright (C) 2012 Altran Praxis Limited, Bath, U.K.

function Parser_Utilities.convertIpv6






@@@@@@@@@@  VC: function_convertipv6_1.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
***  Proved C1:  begidx >= rr_type__linelengthindex__first
     using hypothesis H2.
***  Proved C2:  begidx <= rr_type__linelengthindex__last
     using hypothesis H3.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_2.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New C1:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New C2:  true
***  Proved C1:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_3.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New C1:  true
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New C2:  true
***  Proved C1:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_4.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
***  Proved C1:  0 >= natural__first
     using hypothesis H8.
***  Proved C2:  0 <= natural__last
     using hypothesis H9.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_5.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
***  Proved C1:  begidx < endidx
     using hypothesis H20.
***  Proved C2:  0 <= req_num_separators
     using hypothesis H21.
***  Proved C3:  0 <= max_digits_in_field
     using hypothesis H22.
***  Proved C4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
     using hypothesis H1.
***  Proved C5:  begidx >= rr_type__linelengthindex__first
     using hypothesis H2.
***  Proved C6:  begidx <= rr_type__linelengthindex__last
     using hypothesis H3.
***  Proved C7:  endidx >= rr_type__linelengthindex__first
     using hypothesis H4.
***  Proved C8:  endidx <= rr_type__linelengthindex__last
     using hypothesis H5.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_6.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as H2)
          .
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
***  Proved C1:  ctr + 1 < endidx
     using hypothesis H39.
***  Proved C2:  numseparators <= req_num_separators
     using hypothesis H2.
***  Proved C3:  numdigitsinfield + 1 <= max_digits_in_field
     using hypothesis H41.
***  Proved C4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
     using hypothesis H4.
***  Proved C5:  begidx >= rr_type__linelengthindex__first
     using hypothesis H5.
***  Proved C6:  begidx <= rr_type__linelengthindex__last
     using hypothesis H6.
***  Proved C7:  endidx >= rr_type__linelengthindex__first
     using hypothesis H7.
***  Proved C8:  endidx <= rr_type__linelengthindex__last
     using hypothesis H8.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_7.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as H2)
          .
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
***  Proved C1:  ctr + 1 < endidx
     using hypothesis H51.
***  Proved C2:  numseparators <= req_num_separators
     using hypothesis H2.
***  Proved C3:  numdigitsinfield + 1 <= max_digits_in_field
     using hypothesis H53.
***  Proved C4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
     using hypothesis H4.
***  Proved C5:  begidx >= rr_type__linelengthindex__first
     using hypothesis H5.
***  Proved C6:  begidx <= rr_type__linelengthindex__last
     using hypothesis H6.
***  Proved C7:  endidx >= rr_type__linelengthindex__first
     using hypothesis H7.
***  Proved C8:  endidx <= rr_type__linelengthindex__last
     using hypothesis H8.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_8.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
***  Proved C1:  ctr + 1 < endidx
     using hypothesis H55.
***  Proved C2:  numseparators + 1 <= req_num_separators
     using hypothesis H56.
***  Proved C3:  0 <= max_digits_in_field
     using hypothesis H57.
***  Proved C4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
     using hypothesis H4.
***  Proved C5:  begidx >= rr_type__linelengthindex__first
     using hypothesis H5.
***  Proved C6:  begidx <= rr_type__linelengthindex__last
     using hypothesis H6.
***  Proved C7:  endidx >= rr_type__linelengthindex__first
     using hypothesis H7.
***  Proved C8:  endidx <= rr_type__linelengthindex__last
     using hypothesis H8.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_9.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
***  Proved C1:  element(s, [ctr]) >= character__first
     using hypotheses H4, H9 & H10.
***  Proved C2:  element(s, [ctr]) <= character__last
     using hypotheses H4, H9 & H10.
***  Proved C3:  ctr >= rr_type__linelengthindex__first
     using hypothesis H9.
***  Proved C4:  ctr <= rr_type__linelengthindex__last
     using hypothesis H10.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_10.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C3:  ctr >= rr_type__linelengthindex__first
     using hypothesis H9.
***  Proved C4:  ctr <= rr_type__linelengthindex__last
     using hypothesis H10.
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H19:  fieldtotal >= 0
<S>  New C1:  (ipv6_radix * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H20:  fieldtotal <= 65535
<S>  New C2:  (ipv6_radix * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New C1:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New C2:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New C1:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New C2:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C1:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 
          65536) mod 65536 >= 0
***  Proved C2:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 
          65536) mod 65536 <= 65535
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_11.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C1:  numdigitsinfield + 1 >= natural__first
     using hypothesis H25.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numdigitsinfield <= 2147483647
<S>  New C2:  numdigitsinfield <= 2147483646
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numdigitsinfield >= 0
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H19:  fieldtotal >= 0
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H20:  fieldtotal <= 65535
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H21:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New H22:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C2:  numdigitsinfield <= 2147483646
     using hypothesis H3.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_12.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C1:  element(s, [ctr]) >= character__first
     using hypothesis H11.
***  Proved C2:  element(s, [ctr]) <= character__last
     using hypothesis H12.
***  Proved C3:  ctr >= rr_type__linelengthindex__first
     using hypothesis H9.
***  Proved C4:  ctr <= rr_type__linelengthindex__last
     using hypothesis H10.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_13.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C1:  element(s, [ctr]) >= character__first
     using hypothesis H11.
***  Proved C2:  element(s, [ctr]) <= character__last
     using hypothesis H12.
***  Proved C3:  ctr >= rr_type__linelengthindex__first
     using hypothesis H9.
***  Proved C4:  ctr <= rr_type__linelengthindex__last
     using hypothesis H10.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_14.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H27:  fieldtotal >= 0
<S>  New C1:  ((ipv6_radix * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H28:  fieldtotal <= 65535
<S>  New C2:  ((ipv6_radix * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New C1:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New C2:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H33:  ada__characters__handling__to_upper(element(s, [ctr])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H34:  ada__characters__handling__to_upper(element(s, [ctr])) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New C1:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New C2:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C1:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
***  Proved C2:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_15.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C1:  numdigitsinfield + 1 >= natural__first
     using hypothesis H37.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H38:  numdigitsinfield <= 2147483647
<S>  New C2:  numdigitsinfield <= 2147483646
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H33:  ada__characters__handling__to_upper(element(s, [ctr])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H34:  ada__characters__handling__to_upper(element(s, [ctr])) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H37:  numdigitsinfield >= 0
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H27:  fieldtotal >= 0
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H28:  fieldtotal <= 65535
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H35:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H36:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C2:  numdigitsinfield <= 2147483646
     using hypothesis H3.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_16.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C1:  numseparators + 1 >= natural__first
     using hypothesis H25.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New C2:  numseparators <= 2147483646
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C2:  numseparators <= 2147483646
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_17.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C1:  ctr >= rr_type__linelengthindex__first
     using hypothesis H9.
***  Proved C2:  ctr <= rr_type__linelengthindex__last
     using hypothesis H10.
-S-  Applied substitution rule convertipv6_rules(42).
     This was achieved by replacing all occurrences of 
          separatorindextype__first by:
          1.
<S>  New C3:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(43).
     This was achieved by replacing all occurrences of separatorindextype__last 
          by:
          8.
<S>  New C4:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numseparators >= 0
<S>  New H27:  numseparators >= - 1
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New H28:  numseparators <= 2147483646
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C3:  numseparators >= 0
     using hypothesis H25.
***  Proved C4:  numseparators <= 7
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_18.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C1:  fieldtotal >= unsigned_types__unsigned16__first
     using hypothesis H35.
***  Proved C2:  fieldtotal <= unsigned_types__unsigned16__last
     using hypothesis H36.
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New C3:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New C4:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numseparators >= 0
<S>  New H27:  numseparators >= - 1
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New H28:  numseparators <= 2147483646
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H35:  fieldtotal >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H36:  fieldtotal <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(42).
     This was achieved by replacing all occurrences of 
          separatorindextype__first by:
          1.
<S>  New H33:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(43).
     This was achieved by replacing all occurrences of separatorindextype__last 
          by:
          8.
<S>  New H34:  numseparators <= 7
***  Proved C3:  numseparators >= 0
     using hypothesis H25.
***  Proved C4:  numseparators <= 7
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_19.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H35:  fieldtotal >= 0
<S>  New C1:  true
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H36:  fieldtotal <= 65535
<S>  New C2:  true
***  Proved C1:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_20.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numseparators >= 0
<S>  New H27:  numseparators >= - 1
<S>  New C1:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New H28:  numseparators <= 2147483646
<S>  New C2:  true
***  Proved C1:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_21.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C1:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H9.
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= 256 -> character__first <= element(s, [i___1]) and 
          element(s, [i___1]) <= character__last)
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New C2:  ctr <= 255
***  Proved C2:  ctr <= 255
     using hypotheses H1 & H8.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_22.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C1:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H9.
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= 256 -> character__first <= element(s, [i___1]) and 
          element(s, [i___1]) <= character__last)
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New C2:  ctr <= 255
***  Proved C2:  ctr <= 255
     using hypotheses H1 & H8.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_23.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
***  Proved C1:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H9.
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= 256 -> character__first <= element(s, [i___1]) and 
          element(s, [i___1]) <= character__last)
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New C2:  ctr <= 255
***  Proved C2:  ctr <= 255
     using hypotheses H1 & H8.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_24.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H3)
          .
***  Proved C1:  element(s, [begidx]) >= character__first
     using hypotheses H1, H2 & H3.
***  Proved C2:  element(s, [begidx]) <= character__last
     using hypotheses H1, H2 & H3.
***  Proved C3:  begidx >= rr_type__linelengthindex__first
     using hypothesis H2.
***  Proved C4:  begidx <= rr_type__linelengthindex__last
     using hypothesis H3.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_25.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H32).
***  Proved C1:  element(s, [ctr + 1]) >= character__first
     using hypotheses H4, H31 & H32.
***  Proved C2:  element(s, [ctr + 1]) <= character__last
     using hypotheses H4, H31 & H32.
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H31.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H32.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_26.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H44).
***  Proved C1:  element(s, [ctr + 1]) >= character__first
     using hypotheses H4, H43 & H44.
***  Proved C2:  element(s, [ctr + 1]) <= character__last
     using hypotheses H4, H43 & H44.
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H43.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H44.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_27.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H48).
***  Proved C1:  element(s, [ctr + 1]) >= character__first
     using hypotheses H4, H47 & H48.
***  Proved C2:  element(s, [ctr + 1]) <= character__last
     using hypotheses H4, H47 & H48.
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H47.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H48.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_28.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H35 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H36 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H11).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [begidx]
          ) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [begidx]
          ) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
***  Proved C3:  begidx >= rr_type__linelengthindex__first
     using hypothesis H2.
***  Proved C4:  begidx <= rr_type__linelengthindex__last
     using hypothesis H3.
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H10:  true
<S>  New C1:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [begidx])
           - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H11:  true
<S>  New C2:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [begidx])
           - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
>>>  Restructured hypothesis H20 into:
     >>>  H20:  endidx <= begidx or (req_num_separators < 0 or 
          max_digits_in_field < 0)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H20:  endidx <= begidx or max_digits_in_field < 0
<S>  New H26:  true
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H20:  endidx <= begidx
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H29:  element(s, [begidx]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H30:  element(s, [begidx]) <= 255
<S>  New H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H8:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H9:  true
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New C1:  (element(s, [begidx]) - 48) mod 65536 mod 65536 >= 0
<S>  New C2:  (element(s, [begidx]) - 48) mod 65536 mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H2:  begidx >= 1
<S>  New H4:  endidx >= 1
<S>  New H1:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H3:  begidx <= 256
<S>  New H5:  endidx <= 256
<S>  New H1:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C1:  (element(s, [begidx]) - 48) mod 65536 mod 65536 >= 0
***  Proved C2:  (element(s, [begidx]) - 48) mod 65536 mod 65536 <= 65535
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_29.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H21).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H22).
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H31.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H32.
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H19:  fieldtotal >= 0
<S>  New H21:  (ipv6_radix * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus >= 0
<S>  New C1:  (ipv6_radix * ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr]) - 48) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H20:  fieldtotal <= 65535
<S>  New H22:  (ipv6_radix * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus <= 65535
<S>  New C2:  (ipv6_radix * ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr]) - 48) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
>>>  Restructured hypothesis H39 into:
     >>>  H39:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New C1:  (16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + 
          (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New C2:  (16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + 
          (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H48:  element(s, [ctr + 1]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H49:  element(s, [ctr + 1]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numdigitsinfield >= 0
<S>  New H27:  numdigitsinfield >= - 1
<S>  New H35:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numdigitsinfield <= 2147483647
<S>  New H28:  numdigitsinfield <= 2147483646
<S>  New H36:  numseparators <= 2147483647
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H21:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New H22:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 <= 65535
<S>  New C1:  (16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 
          65536) mod 65536) mod 65536 + (element(s, [ctr + 1]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New C2:  (16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 
          65536) mod 65536) mod 65536 + (element(s, [ctr + 1]) - 48) mod 65536) 
          mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H31:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H32:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C1:  (16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) 
          mod 65536) mod 65536) mod 65536 + (element(s, [ctr + 1]) - 48) mod 
          65536) mod 65536 >= 0
***  Proved C2:  (16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) 
          mod 65536) mod 65536) mod 65536 + (element(s, [ctr + 1]) - 48) mod 
          65536) mod 65536 <= 65535
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_30.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H36).
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H43.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H44.
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H27:  fieldtotal >= 0
<S>  New H35:  ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New C1:  (ipv6_radix * (((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H28:  fieldtotal <= 65535
<S>  New H36:  ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New C2:  (ipv6_radix * (((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
>>>  Restructured hypothesis H51 into:
     >>>  H51:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New C1:  (16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New C2:  (16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H33:  ada__characters__handling__to_upper(element(s, [ctr])) >= 0
<S>  New H60:  element(s, [ctr + 1]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H34:  ada__characters__handling__to_upper(element(s, [ctr])) <= 255
<S>  New H61:  element(s, [ctr + 1]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H37:  numdigitsinfield >= 0
<S>  New H39:  numdigitsinfield >= - 1
<S>  New H47:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H38:  numdigitsinfield <= 2147483647
<S>  New H40:  numdigitsinfield <= 2147483646
<S>  New H48:  numseparators <= 2147483647
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H35:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H36:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
<S>  New C1:  (16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (element(s, [ctr + 1]) 
          - 48) mod 65536) mod 65536 >= 0
<S>  New C2:  (16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (element(s, [ctr + 1]) 
          - 48) mod 65536) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H43:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H44:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C1:  (16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (element(s, [ctr + 1]) 
          - 48) mod 65536) mod 65536 >= 0
***  Proved C2:  (16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (element(s, [ctr + 1]) 
          - 48) mod 65536) mod 65536 <= 65535
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_31.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H72 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H73 has been replaced by "true".  (It is already present, as 
          H42).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 
          1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 
          1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H47.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H48.
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H35:  fieldtotal >= 0
<S>  New H41:  true
<S>  New C1:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]
          ) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H36:  fieldtotal <= 65535
<S>  New H42:  true
<S>  New C2:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]
          ) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
>>>  Restructured hypothesis H55 into:
     >>>  H55:  endidx <= ctr + 1 or (req_num_separators < numseparators + 1 or 
          max_digits_in_field < 0)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H55:  endidx <= ctr + 1 or (numseparators > 6 or max_digits_in_field < 
          0)
<S>  New H61:  numseparators <= 6
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H55:  endidx <= ctr + 1 or numseparators > 6
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H64:  element(s, [ctr + 1]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H65:  element(s, [ctr + 1]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numseparators >= 0
<S>  New H27:  numseparators >= - 1
<S>  New H43:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New H28:  numseparators <= 2147483646
<S>  New H44:  true
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New C1:  (element(s, [ctr + 1]) - 48) mod 65536 mod 65536 >= 0
<S>  New C2:  (element(s, [ctr + 1]) - 48) mod 65536 mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H47:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H48:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New H39:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New H40:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(42).
     This was achieved by replacing all occurrences of 
          separatorindextype__first by:
          1.
<S>  New H33:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(43).
     This was achieved by replacing all occurrences of separatorindextype__last 
          by:
          8.
<S>  New H34:  numseparators <= 7
***  Proved C1:  (element(s, [ctr + 1]) - 48) mod 65536 mod 65536 >= 0
***  Proved C2:  (element(s, [ctr + 1]) - 48) mod 65536 mod 65536 <= 65535
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_32.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H35 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H36 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H11).
%%%  Simplified H39 on reading formula in, to give:
     %%%  H39:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [
          begidx]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified H40 on reading formula in, to give:
     %%%  H40:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [
          begidx]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H43 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  1 >= natural__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  1 <= natural__last
***  Proved C1:  1 >= natural__first
     using hypothesis H8.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H9:  true
<S>  New C2:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_33.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H21).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H22).
---  Hypothesis H60 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H61 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H28).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  numdigitsinfield + 2 >= natural__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  numdigitsinfield + 2 <= natural__last
***  Proved C1:  numdigitsinfield + 2 >= natural__first
     using hypothesis H25.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numdigitsinfield <= 2147483647
<S>  New H28:  numdigitsinfield <= 2147483646
<S>  New H36:  numseparators <= 2147483647
<S>  New C2:  numdigitsinfield <= 2147483645
>>>  Restructured hypothesis H39 into:
     >>>  H39:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
<S>  New H58:  (16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H59:  (16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H48:  element(s, [ctr + 1]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H49:  element(s, [ctr + 1]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numdigitsinfield >= 0
<S>  New H27:  numdigitsinfield >= - 1
<S>  New H35:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H19:  fieldtotal >= 0
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H58:  (16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H20:  fieldtotal <= 65535
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New H59:  (16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H21:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New H58:  (16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 
          65536) mod 65536) mod 65536 + (element(s, [ctr + 1]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New H22:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 <= 65535
<S>  New H59:  (16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 
          65536) mod 65536) mod 65536 + (element(s, [ctr + 1]) - 48) mod 65536) 
          mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H31:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H32:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C2:  numdigitsinfield <= 2147483645
     using hypothesis H3.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_34.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H72 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H73 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H40).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  numdigitsinfield + 2 >= natural__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  numdigitsinfield + 2 <= natural__last
***  Proved C1:  numdigitsinfield + 2 >= natural__first
     using hypothesis H37.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H38:  numdigitsinfield <= 2147483647
<S>  New H40:  numdigitsinfield <= 2147483646
<S>  New H48:  numseparators <= 2147483647
<S>  New C2:  numdigitsinfield <= 2147483645
>>>  Restructured hypothesis H51 into:
     >>>  H51:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
<S>  New H70:  (16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H71:  (16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H33:  ada__characters__handling__to_upper(element(s, [ctr])) >= 0
<S>  New H60:  element(s, [ctr + 1]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H34:  ada__characters__handling__to_upper(element(s, [ctr])) <= 255
<S>  New H61:  element(s, [ctr + 1]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H37:  numdigitsinfield >= 0
<S>  New H39:  numdigitsinfield >= - 1
<S>  New H47:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H27:  fieldtotal >= 0
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H70:  (16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H28:  fieldtotal <= 65535
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New H71:  (16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H35:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H70:  (16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (element(s, [ctr + 1]) 
          - 48) mod 65536) mod 65536 >= 0
<S>  New H36:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
<S>  New H71:  (16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (element(s, [ctr + 1]) 
          - 48) mod 65536) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H43:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H44:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C2:  numdigitsinfield <= 2147483645
     using hypothesis H3.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_35.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H72 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H73 has been replaced by "true".  (It is already present, as 
          H42).
%%%  Simplified H74 on reading formula in, to give:
     %%%  H74:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 
          1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified H75 on reading formula in, to give:
     %%%  H75:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 
          1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
---  Hypothesis H76 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H77 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H44).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  1 >= natural__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  1 <= natural__last
***  Proved C1:  1 >= natural__first
     using hypothesis H43.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New H28:  numseparators <= 2147483646
<S>  New H44:  true
<S>  New C2:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_36.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H35 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H36 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H11).
%%%  Simplified H39 on reading formula in, to give:
     %%%  H39:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [
          begidx]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified H40 on reading formula in, to give:
     %%%  H40:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [
          begidx]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H43 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified H45 on reading formula in, to give:
     %%%  H45:  1 >= natural__first
%%%  Simplified H46 on reading formula in, to give:
     %%%  H46:  1 <= natural__last
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H48 has been replaced by "true".  (It is already present, as 
          H40).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [begidx]
          ) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [begidx]
          ) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  1 >= rr_type__aaaa_record_type__ipv6addrtypeindex__first
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  1 <= rr_type__aaaa_record_type__ipv6addrtypeindex__last
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  1 >= integer__base__first
%%%  Simplified C6 on reading formula in, to give:
     %%%  C6:  1 <= integer__base__last
***  Proved C1:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [
          begidx]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
     using hypothesis H39.
***  Proved C2:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [
          begidx]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
     using hypothesis H40.
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New C3:  true
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New C4:  true
-S-  Applied substitution rule convertipv6_rules(8).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New C5:  true
-S-  Applied substitution rule convertipv6_rules(9).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New C6:  true
***  Proved C3:  true
***  Proved C4:  true
***  Proved C5:  true
***  Proved C6:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_37.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H21).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H22).
---  Hypothesis H60 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H61 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H28).
%%%  Simplified H64 on reading formula in, to give:
     %%%  H64:  numdigitsinfield + 2 >= natural__first
%%%  Simplified H65 on reading formula in, to give:
     %%%  H65:  numdigitsinfield + 2 <= natural__last
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H58).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H59).
***  Proved C1:  (ipv6_radix * ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr]) - 48) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
     using hypothesis H58.
***  Proved C2:  (ipv6_radix * ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr]) - 48) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
     using hypothesis H59.
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New C3:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New C4:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(8).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New C5:  numseparators >= - 2147483649
-S-  Applied substitution rule convertipv6_rules(9).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New C6:  numseparators <= 2147483646
>>>  Restructured hypothesis H39 into:
     >>>  H39:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
<S>  New H58:  (16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H59:  (16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H48:  element(s, [ctr + 1]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H49:  element(s, [ctr + 1]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numdigitsinfield >= 0
<S>  New H27:  numdigitsinfield >= - 1
<S>  New H35:  numseparators >= 0
<S>  New H64:  numdigitsinfield >= - 2
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numdigitsinfield <= 2147483647
<S>  New H28:  numdigitsinfield <= 2147483646
<S>  New H36:  numseparators <= 2147483647
<S>  New H65:  numdigitsinfield <= 2147483645
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H19:  fieldtotal >= 0
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H58:  (16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H20:  fieldtotal <= 65535
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New H59:  (16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H21:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New H58:  (16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 
          65536) mod 65536) mod 65536 + (element(s, [ctr + 1]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New H22:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 <= 65535
<S>  New H59:  (16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 
          65536) mod 65536) mod 65536 + (element(s, [ctr + 1]) - 48) mod 65536) 
          mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H31:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H32:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C3:  numseparators >= 0
     using hypothesis H35.
***  Proved C4:  numseparators <= 7
     using hypothesis H2.
***  Proved C5:  numseparators >= - 2147483649
     using hypothesis H35.
***  Proved C6:  numseparators <= 2147483646
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_38.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H72 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H73 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H40).
%%%  Simplified H76 on reading formula in, to give:
     %%%  H76:  numdigitsinfield + 2 >= natural__first
%%%  Simplified H77 on reading formula in, to give:
     %%%  H77:  numdigitsinfield + 2 <= natural__last
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H70).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H71).
***  Proved C1:  (ipv6_radix * (((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
     using hypothesis H70.
***  Proved C2:  (ipv6_radix * (((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
     using hypothesis H71.
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New C3:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New C4:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(8).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New C5:  numseparators >= - 2147483649
-S-  Applied substitution rule convertipv6_rules(9).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New C6:  numseparators <= 2147483646
>>>  Restructured hypothesis H51 into:
     >>>  H51:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
<S>  New H70:  (16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H71:  (16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H33:  ada__characters__handling__to_upper(element(s, [ctr])) >= 0
<S>  New H60:  element(s, [ctr + 1]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H34:  ada__characters__handling__to_upper(element(s, [ctr])) <= 255
<S>  New H61:  element(s, [ctr + 1]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H37:  numdigitsinfield >= 0
<S>  New H39:  numdigitsinfield >= - 1
<S>  New H47:  numseparators >= 0
<S>  New H76:  numdigitsinfield >= - 2
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H38:  numdigitsinfield <= 2147483647
<S>  New H40:  numdigitsinfield <= 2147483646
<S>  New H48:  numseparators <= 2147483647
<S>  New H77:  numdigitsinfield <= 2147483645
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H27:  fieldtotal >= 0
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H70:  (16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H28:  fieldtotal <= 65535
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New H71:  (16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr + 1]) - 48) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H35:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H70:  (16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (element(s, [ctr + 1]) 
          - 48) mod 65536) mod 65536 >= 0
<S>  New H36:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
<S>  New H71:  (16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (element(s, [ctr + 1]) 
          - 48) mod 65536) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H43:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H44:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C3:  numseparators >= 0
     using hypothesis H47.
***  Proved C4:  numseparators <= 7
     using hypothesis H2.
***  Proved C5:  numseparators >= - 2147483649
     using hypothesis H47.
***  Proved C6:  numseparators <= 2147483646
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_39.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H72 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H73 has been replaced by "true".  (It is already present, as 
          H42).
%%%  Simplified H74 on reading formula in, to give:
     %%%  H74:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 
          1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified H75 on reading formula in, to give:
     %%%  H75:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 
          1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
---  Hypothesis H76 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H77 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H44).
%%%  Simplified H80 on reading formula in, to give:
     %%%  H80:  1 >= natural__first
%%%  Simplified H81 on reading formula in, to give:
     %%%  H81:  1 <= natural__last
---  Hypothesis H82 has been replaced by "true".  (It is already present, as 
          H74).
---  Hypothesis H83 has been replaced by "true".  (It is already present, as 
          H75).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 
          1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 
          1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  numseparators + 2 >= 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  numseparators + 2 <= 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  numseparators + 2 >= integer__base__first
%%%  Simplified C6 on reading formula in, to give:
     %%%  C6:  numseparators + 2 <= integer__base__last
***  Proved C1:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr 
          + 1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
     using hypothesis H74.
***  Proved C2:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr 
          + 1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
     using hypothesis H75.
***  Proved C3:  numseparators + 2 >= 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first
     using hypothesis H39.
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New H40:  numseparators <= 7
<S>  New C4:  numseparators <= 6
-S-  Applied substitution rule convertipv6_rules(8).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New C5:  numseparators >= - 2147483650
-S-  Applied substitution rule convertipv6_rules(9).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New C6:  numseparators <= 2147483645
***  Proved C6:  numseparators <= 2147483645
     using hypothesis H40.
>>>  Restructured hypothesis H55 into:
     >>>  H55:  endidx <= ctr + 1 or (req_num_separators < numseparators + 1 or 
          max_digits_in_field < 0)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H55:  endidx <= ctr + 1 or (numseparators > 6 or max_digits_in_field < 
          0)
<S>  New H61:  numseparators <= 6
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H55:  endidx <= ctr + 1 or numseparators > 6
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H64:  element(s, [ctr + 1]) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H65:  element(s, [ctr + 1]) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numseparators >= 0
<S>  New H27:  numseparators >= - 1
<S>  New H43:  true
<S>  New H80:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New H28:  numseparators <= 2147483646
<S>  New H44:  true
<S>  New H81:  true
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H35:  fieldtotal >= 0
<S>  New H41:  true
<S>  New H74:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 
          1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H36:  fieldtotal <= 65535
<S>  New H42:  true
<S>  New H75:  (0 mod unsigned_types__unsigned16__modulus + (element(s, [ctr + 
          1]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H74:  (element(s, [ctr + 1]) - 48) mod 65536 mod 65536 >= 0
<S>  New H75:  (element(s, [ctr + 1]) - 48) mod 65536 mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H47:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H48:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New H39:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(42).
     This was achieved by replacing all occurrences of 
          separatorindextype__first by:
          1.
<S>  New H33:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(43).
     This was achieved by replacing all occurrences of separatorindextype__last 
          by:
          8.
<S>  New H34:  numseparators <= 7
***  Proved C4:  numseparators <= 6
     using hypothesis H61.
***  Proved C5:  numseparators >= - 2147483650
     using hypothesis H25.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_40.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H35 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H36 has been replaced by "true".  (It is already present, as H3)
          .
***  Proved C1:  element(s, [begidx]) >= character__first
     using hypothesis H29.
***  Proved C2:  element(s, [begidx]) <= character__last
     using hypothesis H30.
***  Proved C3:  begidx >= rr_type__linelengthindex__first
     using hypothesis H2.
***  Proved C4:  begidx <= rr_type__linelengthindex__last
     using hypothesis H3.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_41.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H32).
***  Proved C1:  element(s, [ctr + 1]) >= character__first
     using hypothesis H48.
***  Proved C2:  element(s, [ctr + 1]) <= character__last
     using hypothesis H49.
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H31.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H32.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_42.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H44).
***  Proved C1:  element(s, [ctr + 1]) >= character__first
     using hypothesis H60.
***  Proved C2:  element(s, [ctr + 1]) <= character__last
     using hypothesis H61.
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H43.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H44.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_43.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H48).
***  Proved C1:  element(s, [ctr + 1]) >= character__first
     using hypothesis H64.
***  Proved C2:  element(s, [ctr + 1]) <= character__last
     using hypothesis H65.
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H47.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H48.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_44.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H35 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H36 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H29).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H39 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H40 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H43 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H11).
***  Proved C1:  element(s, [begidx]) >= character__first
     using hypothesis H29.
***  Proved C2:  element(s, [begidx]) <= character__last
     using hypothesis H30.
***  Proved C3:  begidx >= rr_type__linelengthindex__first
     using hypothesis H2.
***  Proved C4:  begidx <= rr_type__linelengthindex__last
     using hypothesis H3.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_45.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H49).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H64 has been replaced by "true".  (It is already present, as 
          H21).
---  Hypothesis H65 has been replaced by "true".  (It is already present, as 
          H22).
***  Proved C1:  element(s, [ctr + 1]) >= character__first
     using hypothesis H48.
***  Proved C2:  element(s, [ctr + 1]) <= character__last
     using hypothesis H49.
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H31.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H32.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_46.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H60).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H61).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H76 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H77 has been replaced by "true".  (It is already present, as 
          H36).
***  Proved C1:  element(s, [ctr + 1]) >= character__first
     using hypothesis H60.
***  Proved C2:  element(s, [ctr + 1]) <= character__last
     using hypothesis H61.
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H43.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H44.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_47.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H72 has been replaced by "true".  (It is already present, as 
          H64).
---  Hypothesis H73 has been replaced by "true".  (It is already present, as 
          H65).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H80 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H81 has been replaced by "true".  (It is already present, as 
          H42).
***  Proved C1:  element(s, [ctr + 1]) >= character__first
     using hypothesis H64.
***  Proved C2:  element(s, [ctr + 1]) <= character__last
     using hypothesis H65.
***  Proved C3:  ctr + 1 >= rr_type__linelengthindex__first
     using hypothesis H47.
***  Proved C4:  ctr + 1 <= rr_type__linelengthindex__last
     using hypothesis H48.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_48.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H35 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H36 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H29).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H39 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H40 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H43 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H29).
---  Hypothesis H48 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H50 has been replaced by "true".  (It is already present, as H3)
          .
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H10:  true
<S>  New C1:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H11:  true
<S>  New C2:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
>>>  Restructured hypothesis H20 into:
     >>>  H20:  endidx <= begidx or (req_num_separators < 0 or 
          max_digits_in_field < 0)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H20:  endidx <= begidx or max_digits_in_field < 0
<S>  New H26:  true
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H20:  endidx <= begidx
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H29:  element(s, [begidx]) >= 0
<S>  New H51:  ada__characters__handling__to_upper(element(s, [begidx])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H30:  element(s, [begidx]) <= 255
<S>  New H52:  ada__characters__handling__to_upper(element(s, [begidx])) <= 255
<S>  New H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H8:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H9:  true
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New C1:  ((ada__characters__handling__to_upper(element(s, [begidx])) - 65) 
          mod 65536 mod 65536 + 10) mod 65536 >= 0
<S>  New C2:  ((ada__characters__handling__to_upper(element(s, [begidx])) - 65) 
          mod 65536 mod 65536 + 10) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H2:  begidx >= 1
<S>  New H4:  endidx >= 1
<S>  New H1:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H3:  begidx <= 256
<S>  New H5:  endidx <= 256
<S>  New H1:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C1:  ((ada__characters__handling__to_upper(element(s, [begidx])) - 
          65) mod 65536 mod 65536 + 10) mod 65536 >= 0
***  Proved C2:  ((ada__characters__handling__to_upper(element(s, [begidx])) - 
          65) mod 65536 mod 65536 + 10) mod 65536 <= 65535
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_49.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H49).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H64 has been replaced by "true".  (It is already present, as 
          H21).
---  Hypothesis H65 has been replaced by "true".  (It is already present, as 
          H22).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H49).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H32).
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H19:  fieldtotal >= 0
<S>  New H21:  (ipv6_radix * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus >= 0
<S>  New C1:  ((ipv6_radix * ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr]) - 48) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H20:  fieldtotal <= 65535
<S>  New H22:  (ipv6_radix * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus <= 65535
<S>  New C2:  ((ipv6_radix * ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr]) - 48) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
>>>  Restructured hypothesis H39 into:
     >>>  H39:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New C1:  ((16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New C2:  ((16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H48:  element(s, [ctr + 1]) >= 0
<S>  New H70:  ada__characters__handling__to_upper(element(s, [ctr + 1])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H49:  element(s, [ctr + 1]) <= 255
<S>  New H71:  ada__characters__handling__to_upper(element(s, [ctr + 1])) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numdigitsinfield >= 0
<S>  New H27:  numdigitsinfield >= - 1
<S>  New H35:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numdigitsinfield <= 2147483647
<S>  New H28:  numdigitsinfield <= 2147483646
<S>  New H36:  numseparators <= 2147483647
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H21:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New H22:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 <= 65535
<S>  New C1:  ((16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 
          65536) mod 65536) mod 65536 + (ada__characters__handling__to_upper(
          element(s, [ctr + 1])) - 65) mod 65536) mod 65536 + 10) mod 65536 >= 0
<S>  New C2:  ((16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 
          65536) mod 65536) mod 65536 + (ada__characters__handling__to_upper(
          element(s, [ctr + 1])) - 65) mod 65536) mod 65536 + 10) mod 65536 <= 
          65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H31:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H32:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C1:  ((16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) 
          mod 65536) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
***  Proved C2:  ((16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) 
          mod 65536) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_50.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H60).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H61).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H76 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H77 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H60).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H61).
---  Hypothesis H80 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H81 has been replaced by "true".  (It is already present, as 
          H44).
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H27:  fieldtotal >= 0
<S>  New H35:  ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New C1:  ((ipv6_radix * (((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H28:  fieldtotal <= 65535
<S>  New H36:  ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New C2:  ((ipv6_radix * (((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
>>>  Restructured hypothesis H51 into:
     >>>  H51:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New C1:  ((16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New C2:  ((16 * (((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H33:  ada__characters__handling__to_upper(element(s, [ctr])) >= 0
<S>  New H60:  element(s, [ctr + 1]) >= 0
<S>  New H82:  ada__characters__handling__to_upper(element(s, [ctr + 1])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H34:  ada__characters__handling__to_upper(element(s, [ctr])) <= 255
<S>  New H61:  element(s, [ctr + 1]) <= 255
<S>  New H83:  ada__characters__handling__to_upper(element(s, [ctr + 1])) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H37:  numdigitsinfield >= 0
<S>  New H39:  numdigitsinfield >= - 1
<S>  New H47:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H38:  numdigitsinfield <= 2147483647
<S>  New H40:  numdigitsinfield <= 2147483646
<S>  New H48:  numseparators <= 2147483647
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H35:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H36:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
<S>  New C1:  ((16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New C2:  ((16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H43:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H44:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C1:  ((16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
***  Proved C2:  ((16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_51.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H72 has been replaced by "true".  (It is already present, as 
          H64).
---  Hypothesis H73 has been replaced by "true".  (It is already present, as 
          H65).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H80 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H81 has been replaced by "true".  (It is already present, as 
          H42).
---  Hypothesis H82 has been replaced by "true".  (It is already present, as 
          H64).
---  Hypothesis H83 has been replaced by "true".  (It is already present, as 
          H65).
---  Hypothesis H84 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H85 has been replaced by "true".  (It is already present, as 
          H48).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H35:  fieldtotal >= 0
<S>  New H41:  true
<S>  New C1:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H36:  fieldtotal <= 65535
<S>  New H42:  true
<S>  New C2:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
>>>  Restructured hypothesis H55 into:
     >>>  H55:  endidx <= ctr + 1 or (req_num_separators < numseparators + 1 or 
          max_digits_in_field < 0)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H55:  endidx <= ctr + 1 or (numseparators > 6 or max_digits_in_field < 
          0)
<S>  New H61:  numseparators <= 6
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H55:  endidx <= ctr + 1 or numseparators > 6
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H64:  element(s, [ctr + 1]) >= 0
<S>  New H86:  ada__characters__handling__to_upper(element(s, [ctr + 1])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H65:  element(s, [ctr + 1]) <= 255
<S>  New H87:  ada__characters__handling__to_upper(element(s, [ctr + 1])) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numseparators >= 0
<S>  New H27:  numseparators >= - 1
<S>  New H43:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New H28:  numseparators <= 2147483646
<S>  New H44:  true
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New C1:  ((ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65)
           mod 65536 mod 65536 + 10) mod 65536 >= 0
<S>  New C2:  ((ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65)
           mod 65536 mod 65536 + 10) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H47:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H48:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New H39:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New H40:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(42).
     This was achieved by replacing all occurrences of 
          separatorindextype__first by:
          1.
<S>  New H33:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(43).
     This was achieved by replacing all occurrences of separatorindextype__last 
          by:
          8.
<S>  New H34:  numseparators <= 7
***  Proved C1:  ((ada__characters__handling__to_upper(element(s, [ctr + 1])) - 
          65) mod 65536 mod 65536 + 10) mod 65536 >= 0
***  Proved C2:  ((ada__characters__handling__to_upper(element(s, [ctr + 1])) - 
          65) mod 65536 mod 65536 + 10) mod 65536 <= 65535
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_52.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H35 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H36 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H29).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H39 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H40 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H43 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H29).
---  Hypothesis H48 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H50 has been replaced by "true".  (It is already present, as H3)
          .
%%%  Simplified H53 on reading formula in, to give:
     %%%  H53:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified H54 on reading formula in, to give:
     %%%  H54:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
---  Hypothesis H55 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H56 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  1 >= natural__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  1 <= natural__last
***  Proved C1:  1 >= natural__first
     using hypothesis H8.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H9:  true
<S>  New C2:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_53.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H49).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H64 has been replaced by "true".  (It is already present, as 
          H21).
---  Hypothesis H65 has been replaced by "true".  (It is already present, as 
          H22).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H49).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H28).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  numdigitsinfield + 2 >= natural__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  numdigitsinfield + 2 <= natural__last
***  Proved C1:  numdigitsinfield + 2 >= natural__first
     using hypothesis H25.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numdigitsinfield <= 2147483647
<S>  New H28:  numdigitsinfield <= 2147483646
<S>  New H36:  numseparators <= 2147483647
<S>  New C2:  numdigitsinfield <= 2147483645
>>>  Restructured hypothesis H39 into:
     >>>  H39:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
<S>  New H72:  ((16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H73:  ((16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H48:  element(s, [ctr + 1]) >= 0
<S>  New H70:  ada__characters__handling__to_upper(element(s, [ctr + 1])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H49:  element(s, [ctr + 1]) <= 255
<S>  New H71:  ada__characters__handling__to_upper(element(s, [ctr + 1])) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numdigitsinfield >= 0
<S>  New H27:  numdigitsinfield >= - 1
<S>  New H35:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H19:  fieldtotal >= 0
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H72:  ((16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H20:  fieldtotal <= 65535
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New H73:  ((16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H21:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New H72:  ((16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) 
          mod 65536) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H22:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 <= 65535
<S>  New H73:  ((16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) 
          mod 65536) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H31:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H32:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C2:  numdigitsinfield <= 2147483645
     using hypothesis H3.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_54.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H60).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H61).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H76 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H77 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H60).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H61).
---  Hypothesis H80 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H81 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H86 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H87 has been replaced by "true".  (It is already present, as 
          H40).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  numdigitsinfield + 2 >= natural__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  numdigitsinfield + 2 <= natural__last
***  Proved C1:  numdigitsinfield + 2 >= natural__first
     using hypothesis H37.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H38:  numdigitsinfield <= 2147483647
<S>  New H40:  numdigitsinfield <= 2147483646
<S>  New H48:  numseparators <= 2147483647
<S>  New C2:  numdigitsinfield <= 2147483645
>>>  Restructured hypothesis H51 into:
     >>>  H51:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
<S>  New H84:  ((16 * (((16 * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H85:  ((16 * (((16 * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H33:  ada__characters__handling__to_upper(element(s, [ctr])) >= 0
<S>  New H60:  element(s, [ctr + 1]) >= 0
<S>  New H82:  ada__characters__handling__to_upper(element(s, [ctr + 1])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H34:  ada__characters__handling__to_upper(element(s, [ctr])) <= 255
<S>  New H61:  element(s, [ctr + 1]) <= 255
<S>  New H83:  ada__characters__handling__to_upper(element(s, [ctr + 1])) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H37:  numdigitsinfield >= 0
<S>  New H39:  numdigitsinfield >= - 1
<S>  New H47:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H27:  fieldtotal >= 0
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H84:  ((16 * (((16 * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H28:  fieldtotal <= 65535
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New H85:  ((16 * (((16 * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H35:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H84:  ((16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H36:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
<S>  New H85:  ((16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H43:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H44:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C2:  numdigitsinfield <= 2147483645
     using hypothesis H3.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_55.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H72 has been replaced by "true".  (It is already present, as 
          H64).
---  Hypothesis H73 has been replaced by "true".  (It is already present, as 
          H65).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H80 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H81 has been replaced by "true".  (It is already present, as 
          H42).
---  Hypothesis H82 has been replaced by "true".  (It is already present, as 
          H64).
---  Hypothesis H83 has been replaced by "true".  (It is already present, as 
          H65).
---  Hypothesis H84 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H85 has been replaced by "true".  (It is already present, as 
          H48).
%%%  Simplified H88 on reading formula in, to give:
     %%%  H88:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified H89 on reading formula in, to give:
     %%%  H89:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
---  Hypothesis H90 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H91 has been replaced by "true".  (It is already present, as 
          H44).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  1 >= natural__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  1 <= natural__last
***  Proved C1:  1 >= natural__first
     using hypothesis H43.
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New H28:  numseparators <= 2147483646
<S>  New H44:  true
<S>  New C2:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_56.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H35 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H36 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H29).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H39 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H40 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H43 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H29).
---  Hypothesis H48 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H50 has been replaced by "true".  (It is already present, as H3)
          .
%%%  Simplified H53 on reading formula in, to give:
     %%%  H53:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified H54 on reading formula in, to give:
     %%%  H54:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
---  Hypothesis H55 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H56 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified H57 on reading formula in, to give:
     %%%  H57:  1 >= natural__first
%%%  Simplified H58 on reading formula in, to give:
     %%%  H58:  1 <= natural__last
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H53).
---  Hypothesis H60 has been replaced by "true".  (It is already present, as 
          H54).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  1 >= rr_type__aaaa_record_type__ipv6addrtypeindex__first
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  1 <= rr_type__aaaa_record_type__ipv6addrtypeindex__last
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  1 >= integer__base__first
%%%  Simplified C6 on reading formula in, to give:
     %%%  C6:  1 <= integer__base__last
***  Proved C1:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
     using hypothesis H53.
***  Proved C2:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [begidx])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
     using hypothesis H54.
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New C3:  true
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New C4:  true
-S-  Applied substitution rule convertipv6_rules(8).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New C5:  true
-S-  Applied substitution rule convertipv6_rules(9).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New C6:  true
***  Proved C3:  true
***  Proved C4:  true
***  Proved C5:  true
***  Proved C6:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_57.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H49).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H64 has been replaced by "true".  (It is already present, as 
          H21).
---  Hypothesis H65 has been replaced by "true".  (It is already present, as 
          H22).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H49).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H28).
%%%  Simplified H76 on reading formula in, to give:
     %%%  H76:  numdigitsinfield + 2 >= natural__first
%%%  Simplified H77 on reading formula in, to give:
     %%%  H77:  numdigitsinfield + 2 <= natural__last
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H72).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H73).
***  Proved C1:  ((ipv6_radix * ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr]) - 48) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
     using hypothesis H72.
***  Proved C2:  ((ipv6_radix * ((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (element(s, [ctr]) - 48) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
     using hypothesis H73.
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New C3:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New C4:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(8).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New C5:  numseparators >= - 2147483649
-S-  Applied substitution rule convertipv6_rules(9).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New C6:  numseparators <= 2147483646
>>>  Restructured hypothesis H39 into:
     >>>  H39:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H39:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
<S>  New H72:  ((16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H73:  ((16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H48:  element(s, [ctr + 1]) >= 0
<S>  New H70:  ada__characters__handling__to_upper(element(s, [ctr + 1])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H49:  element(s, [ctr + 1]) <= 255
<S>  New H71:  ada__characters__handling__to_upper(element(s, [ctr + 1])) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numdigitsinfield >= 0
<S>  New H27:  numdigitsinfield >= - 1
<S>  New H35:  numseparators >= 0
<S>  New H76:  numdigitsinfield >= - 2
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numdigitsinfield <= 2147483647
<S>  New H28:  numdigitsinfield <= 2147483646
<S>  New H36:  numseparators <= 2147483647
<S>  New H77:  numdigitsinfield <= 2147483645
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H19:  fieldtotal >= 0
<S>  New H21:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H72:  ((16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H20:  fieldtotal <= 65535
<S>  New H22:  (16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New H73:  ((16 * ((16 * fieldtotal mod unsigned_types__unsigned16__modulus 
          + (element(s, [ctr]) - 48) mod unsigned_types__unsigned16__modulus) 
          mod unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H21:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 >= 0
<S>  New H72:  ((16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) 
          mod 65536) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H22:  (16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) mod 65536) 
          mod 65536 <= 65535
<S>  New H73:  ((16 * ((16 * fieldtotal mod 65536 + (element(s, [ctr]) - 48) 
          mod 65536) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H31:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H32:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C3:  numseparators >= 0
     using hypothesis H35.
***  Proved C4:  numseparators <= 7
     using hypothesis H2.
***  Proved C5:  numseparators >= - 2147483649
     using hypothesis H35.
***  Proved C6:  numseparators <= 2147483646
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_58.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H60).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H61).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H76 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H77 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H60).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H61).
---  Hypothesis H80 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H81 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H86 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H87 has been replaced by "true".  (It is already present, as 
          H40).
%%%  Simplified H88 on reading formula in, to give:
     %%%  H88:  numdigitsinfield + 2 >= natural__first
%%%  Simplified H89 on reading formula in, to give:
     %%%  H89:  numdigitsinfield + 2 <= natural__last
---  Hypothesis H90 has been replaced by "true".  (It is already present, as 
          H84).
---  Hypothesis H91 has been replaced by "true".  (It is already present, as 
          H85).
***  Proved C1:  ((ipv6_radix * (((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
     using hypothesis H84.
***  Proved C2:  ((ipv6_radix * (((ipv6_radix * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
     using hypothesis H85.
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New C3:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New C4:  numseparators <= 7
-S-  Applied substitution rule convertipv6_rules(8).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New C5:  numseparators >= - 2147483649
-S-  Applied substitution rule convertipv6_rules(9).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New C6:  numseparators <= 2147483646
>>>  Restructured hypothesis H51 into:
     >>>  H51:  endidx <= ctr + 1 or (req_num_separators < numseparators or 
          max_digits_in_field < numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or max_digits_in_field < 
          numdigitsinfield + 1)
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H51:  endidx <= ctr + 1 or (7 < numseparators or numdigitsinfield > 3)
-S-  Applied substitution rule convertipv6_rules(4).
     This was achieved by replacing all occurrences of ipv6_radix by:
          16.
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
<S>  New H84:  ((16 * (((16 * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
<S>  New H85:  ((16 * (((16 * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H33:  ada__characters__handling__to_upper(element(s, [ctr])) >= 0
<S>  New H60:  element(s, [ctr + 1]) >= 0
<S>  New H82:  ada__characters__handling__to_upper(element(s, [ctr + 1])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H34:  ada__characters__handling__to_upper(element(s, [ctr])) <= 255
<S>  New H61:  element(s, [ctr + 1]) <= 255
<S>  New H83:  ada__characters__handling__to_upper(element(s, [ctr + 1])) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H37:  numdigitsinfield >= 0
<S>  New H39:  numdigitsinfield >= - 1
<S>  New H47:  numseparators >= 0
<S>  New H88:  numdigitsinfield >= - 2
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H38:  numdigitsinfield <= 2147483647
<S>  New H40:  numdigitsinfield <= 2147483646
<S>  New H48:  numseparators <= 2147483647
<S>  New H89:  numdigitsinfield <= 2147483645
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H27:  fieldtotal >= 0
<S>  New H35:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
<S>  New H84:  ((16 * (((16 * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H28:  fieldtotal <= 65535
<S>  New H36:  ((16 * fieldtotal mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
<S>  New H85:  ((16 * (((16 * fieldtotal mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H35:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H84:  ((16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 >= 0
<S>  New H36:  ((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
<S>  New H85:  ((16 * (((16 * fieldtotal mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr])) - 65) mod 
          65536) mod 65536 + 10) mod 65536) mod 65536 + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          65536) mod 65536 + 10) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H43:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H44:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
***  Proved C3:  numseparators >= 0
     using hypothesis H47.
***  Proved C4:  numseparators <= 7
     using hypothesis H2.
***  Proved C5:  numseparators >= - 2147483649
     using hypothesis H47.
***  Proved C6:  numseparators <= 2147483646
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_59.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H72 has been replaced by "true".  (It is already present, as 
          H64).
---  Hypothesis H73 has been replaced by "true".  (It is already present, as 
          H65).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H78 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H79 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H80 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H81 has been replaced by "true".  (It is already present, as 
          H42).
---  Hypothesis H82 has been replaced by "true".  (It is already present, as 
          H64).
---  Hypothesis H83 has been replaced by "true".  (It is already present, as 
          H65).
---  Hypothesis H84 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H85 has been replaced by "true".  (It is already present, as 
          H48).
%%%  Simplified H88 on reading formula in, to give:
     %%%  H88:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified H89 on reading formula in, to give:
     %%%  H89:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
---  Hypothesis H90 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H91 has been replaced by "true".  (It is already present, as 
          H44).
%%%  Simplified H92 on reading formula in, to give:
     %%%  H92:  1 >= natural__first
%%%  Simplified H93 on reading formula in, to give:
     %%%  H93:  1 <= natural__last
---  Hypothesis H94 has been replaced by "true".  (It is already present, as 
          H88).
---  Hypothesis H95 has been replaced by "true".  (It is already present, as 
          H89).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  numseparators + 2 >= 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  numseparators + 2 <= 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  numseparators + 2 >= integer__base__first
%%%  Simplified C6 on reading formula in, to give:
     %%%  C6:  numseparators + 2 <= integer__base__last
***  Proved C1:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 
          unsigned_types__unsigned16__first
     using hypothesis H88.
***  Proved C2:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 
          unsigned_types__unsigned16__last
     using hypothesis H89.
***  Proved C3:  numseparators + 2 >= 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first
     using hypothesis H39.
-S-  Applied substitution rule convertipv6_rules(38).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__last by:
          8.
<S>  New H40:  numseparators <= 7
<S>  New C4:  numseparators <= 6
-S-  Applied substitution rule convertipv6_rules(8).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New C5:  numseparators >= - 2147483650
-S-  Applied substitution rule convertipv6_rules(9).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New C6:  numseparators <= 2147483645
***  Proved C6:  numseparators <= 2147483645
     using hypothesis H40.
>>>  Restructured hypothesis H55 into:
     >>>  H55:  endidx <= ctr + 1 or (req_num_separators < numseparators + 1 or 
          max_digits_in_field < 0)
-S-  Applied substitution rule convertipv6_rules(2).
     This was achieved by replacing all occurrences of req_num_separators by:
          7.
<S>  New H2:  numseparators <= 7
<S>  New H55:  endidx <= ctr + 1 or (numseparators > 6 or max_digits_in_field < 
          0)
<S>  New H61:  numseparators <= 6
-S-  Applied substitution rule convertipv6_rules(3).
     This was achieved by replacing all occurrences of max_digits_in_field by:
          4.
<S>  New H3:  numdigitsinfield <= 4
<S>  New H55:  endidx <= ctr + 1 or numseparators > 6
-S-  Applied substitution rule convertipv6_rules(11).
     This was achieved by replacing all occurrences of character__first by:
          0.
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= character__last)
<S>  New H11:  element(s, [ctr]) >= 0
<S>  New H64:  element(s, [ctr + 1]) >= 0
<S>  New H86:  ada__characters__handling__to_upper(element(s, [ctr + 1])) >= 0
-S-  Applied substitution rule convertipv6_rules(12).
     This was achieved by replacing all occurrences of character__last by:
          255.
<S>  New H12:  element(s, [ctr]) <= 255
<S>  New H65:  element(s, [ctr + 1]) <= 255
<S>  New H87:  ada__characters__handling__to_upper(element(s, [ctr + 1])) <= 255
<S>  New H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= i___1 
          and i___1 <= rr_type__linelengthindex__last -> 0 <= element(s, [i___1]
          ) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numseparators >= 0
<S>  New H27:  numseparators >= - 1
<S>  New H43:  true
<S>  New H92:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New H28:  numseparators <= 2147483646
<S>  New H44:  true
<S>  New H93:  true
-S-  Applied substitution rule convertipv6_rules(26).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__first by:
          0.
<S>  New H35:  fieldtotal >= 0
<S>  New H41:  true
<S>  New H88:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus >= 0
-S-  Applied substitution rule convertipv6_rules(27).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__last by:
          65535.
<S>  New H36:  fieldtotal <= 65535
<S>  New H42:  true
<S>  New H89:  ((0 mod unsigned_types__unsigned16__modulus + (
          ada__characters__handling__to_upper(element(s, [ctr + 1])) - 65) mod 
          unsigned_types__unsigned16__modulus) mod 
          unsigned_types__unsigned16__modulus + 10) mod 
          unsigned_types__unsigned16__modulus <= 65535
-S-  Applied substitution rule convertipv6_rules(30).
     This was achieved by replacing all occurrences of 
          unsigned_types__unsigned16__modulus by:
          65536.
<S>  New H88:  ((ada__characters__handling__to_upper(element(s, [ctr + 1])) - 
          65) mod 65536 mod 65536 + 10) mod 65536 >= 0
<S>  New H89:  ((ada__characters__handling__to_upper(element(s, [ctr + 1])) - 
          65) mod 65536 mod 65536 + 10) mod 65536 <= 65535
-S-  Applied substitution rule convertipv6_rules(32).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__first by:
          1.
<S>  New H5:  begidx >= 1
<S>  New H7:  endidx >= 1
<S>  New H9:  ctr >= 1
<S>  New H47:  ctr >= 0
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 
          rr_type__linelengthindex__last -> 0 <= element(s, [i___1]) and 
          element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(33).
     This was achieved by replacing all occurrences of 
          rr_type__linelengthindex__last by:
          256.
<S>  New H6:  begidx <= 256
<S>  New H8:  endidx <= 256
<S>  New H10:  ctr <= 256
<S>  New H48:  ctr <= 255
<S>  New H4:  for_all(i___1 : integer, 1 <= i___1 and i___1 <= 256 -> 0 <= 
          element(s, [i___1]) and element(s, [i___1]) <= 255)
-S-  Applied substitution rule convertipv6_rules(37).
     This was achieved by replacing all occurrences of 
          rr_type__aaaa_record_type__ipv6addrtypeindex__first by:
          1.
<S>  New H39:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(42).
     This was achieved by replacing all occurrences of 
          separatorindextype__first by:
          1.
<S>  New H33:  numseparators >= 0
-S-  Applied substitution rule convertipv6_rules(43).
     This was achieved by replacing all occurrences of separatorindextype__last 
          by:
          8.
<S>  New H34:  numseparators <= 7
***  Proved C4:  numseparators <= 6
     using hypothesis H61.
***  Proved C5:  numseparators >= - 2147483650
     using hypothesis H25.
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_60.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H6 has been replaced by "true".  (It is already present, as H2).
---  Hypothesis H7 has been replaced by "true".  (It is already present, as H3).
---  Hypothesis H12 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H19 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H35 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H36 has been replaced by "true".  (It is already present, as H3)
          .
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H29).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H39 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H40 has been replaced by "true".  (It is already present, as H3)
          .
-S-  Applied substitution rule convertipv6_rules(1).
     This was achieved by replacing all occurrences of num_fields by:
          8.
<S>  New C1:  8 >= natural__first
<S>  New C2:  8 <= natural__last
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H8:  true
<S>  New C1:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H9:  true
<S>  New C2:  true
***  Proved C1:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_61.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H23 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H24 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H49).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H32).
-S-  Applied substitution rule convertipv6_rules(1).
     This was achieved by replacing all occurrences of num_fields by:
          8.
<S>  New C1:  8 >= natural__first
<S>  New C2:  8 <= natural__last
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numdigitsinfield >= 0
<S>  New H27:  numdigitsinfield >= - 1
<S>  New H35:  numseparators >= 0
<S>  New C1:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numdigitsinfield <= 2147483647
<S>  New H28:  numdigitsinfield <= 2147483646
<S>  New H36:  numseparators <= 2147483647
<S>  New C2:  true
***  Proved C1:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_62.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H39).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H40).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as H2)
          .
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H68 has been replaced by "true".  (It is already present, as 
          H60).
---  Hypothesis H69 has been replaced by "true".  (It is already present, as 
          H61).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H44).
-S-  Applied substitution rule convertipv6_rules(1).
     This was achieved by replacing all occurrences of num_fields by:
          8.
<S>  New C1:  8 >= natural__first
<S>  New C2:  8 <= natural__last
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H37:  numdigitsinfield >= 0
<S>  New H39:  numdigitsinfield >= - 1
<S>  New H47:  numseparators >= 0
<S>  New C1:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H38:  numdigitsinfield <= 2147483647
<S>  New H40:  numdigitsinfield <= 2147483646
<S>  New H48:  numseparators <= 2147483647
<S>  New C2:  true
***  Proved C1:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_63.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, rr_type__linelengthindex__first <= 
          i___1 and i___1 <= rr_type__linelengthindex__last -> character__first 
          <= element(s, [i___1]) and element(s, [i___1]) <= character__last)
---  Hypothesis H13 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H14 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H19 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H20 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H31 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H35).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H36).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as H9)
          .
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H43).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H44).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H57 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H58 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H59 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H63 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H66 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H67 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H70 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H71 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H72 has been replaced by "true".  (It is already present, as 
          H64).
---  Hypothesis H73 has been replaced by "true".  (It is already present, as 
          H65).
---  Hypothesis H74 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H75 has been replaced by "true".  (It is already present, as 
          H48).
-S-  Applied substitution rule convertipv6_rules(1).
     This was achieved by replacing all occurrences of num_fields by:
          8.
<S>  New C1:  8 >= natural__first
<S>  New C2:  8 <= natural__last
-S-  Applied substitution rule convertipv6_rules(16).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H25:  numseparators >= 0
<S>  New H27:  numseparators >= - 1
<S>  New H43:  true
<S>  New C1:  true
-S-  Applied substitution rule convertipv6_rules(17).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H26:  numseparators <= 2147483647
<S>  New H28:  numseparators <= 2147483646
<S>  New H44:  true
<S>  New C2:  true
***  Proved C1:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_64.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_65.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_66.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_67.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_68.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_69.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_70.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_71.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_72.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_73.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_74.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_75.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_76.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_77.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_78.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_79.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_80.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_81.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_82.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_83.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_84.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_85.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_86.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_87.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_88.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_89.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_90.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_91.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_92.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_93.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_94.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_convertipv6_95.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.

