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

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



SPARK Simplifier Pro Edition


procedure Skein.Skein_512_Process_Block.Round_8






@@@@@@@@@@  VC: procedure_round_8_1.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New C1:  (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
<S>  New C3:  true
<S>  New C5:  true
<S>  New C7:  true
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
<S>  New C4:  true
<S>  New C6:  true
<S>  New C8:  true
***  Proved C3:  true
***  Proved C5:  true
***  Proved C7:  true
***  Proved C4:  true
***  Proved C6:  true
***  Proved C8:  true
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New C1:  (element(x, [6]) + element(x, [1])) mod 18446744073709551616 >= 0
<S>  New C2:  (element(x, [6]) + element(x, [1])) mod 18446744073709551616 <= 
          18446744073709551615
***  Proved C1:  (element(x, [6]) + element(x, [1])) mod 18446744073709551616 
          >= 0
***  Proved C2:  (element(x, [6]) + element(x, [1])) mod 18446744073709551616 
          <= 18446744073709551615
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_2.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  element(x, [1]) >= interfaces__unsigned_64__first
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  element(x, [1]) <= interfaces__unsigned_64__last
***  Proved C5:  1 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C6:  1 <= spark__crypto__i8__last
     using hypothesis H6.
***  Proved C7:  1 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C8:  1 <= spark__crypto__i8__last
     using hypothesis H6.
-S-  Applied substitution rule round_8_rules(1).
     This was achieved by replacing all occurrences of r_512_7_0 by:
          8.
<S>  New C1:  8 >= spark__unsigned__shift_count__first
<S>  New C2:  8 <= spark__unsigned__shift_count__last
-S-  Applied substitution rule round_8_rules(24).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__first by:
          0.
<S>  New C1:  true
-S-  Applied substitution rule round_8_rules(25).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__last by:
          64.
<S>  New C2:  true
-S-  Applied substitution rule round_8_rules(12).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__first by:
          0.
<S>  New C3:  element(x, [1]) >= 0
-S-  Applied substitution rule round_8_rules(13).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__last by:
          18446744073709551615.
<S>  New C4:  element(x, [1]) <= 18446744073709551615
***  Proved C1:  true
***  Proved C2:  true
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H3:  (element(x, [6]) + element(x, [1])) mod 18446744073709551616 >= 
          spark__unsigned__u64__first
<S>  New H4:  (element(x, [6]) + element(x, [1])) mod 18446744073709551616 <= 
          spark__unsigned__u64__last
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [6]) + element(x, [1])) mod 18446744073709551616 >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [6]) + element(x, [1])) mod 18446744073709551616 <= 
          18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H5:  true
<S>  New H7:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H6:  true
<S>  New H8:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
***  Proved C3:  element(x, [1]) >= 0
     using hypothesis H2.
***  Proved C4:  element(x, [1]) <= 18446744073709551615
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_3.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [1]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [1]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) <= 
          interfaces__unsigned_64__last
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) >= 
          spark__unsigned__u64__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) <= 
          spark__unsigned__u64__last
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C1:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(1).
     This was achieved by replacing all occurrences of r_512_7_0 by:
          8.
<S>  New H11:  8 >= spark__unsigned__shift_count__first
<S>  New H12:  8 <= spark__unsigned__shift_count__last
<S>  New H19:  spark__unsigned__rotate_left_64(element(x, [1]), 8) >= 
          interfaces__unsigned_64__first
<S>  New H20:  spark__unsigned__rotate_left_64(element(x, [1]), 8) <= 
          interfaces__unsigned_64__last
<S>  New C1:  spark__unsigned__rotate_left_64(element(x, [1]), 8) >= 0
<S>  New C2:  spark__unsigned__rotate_left_64(element(x, [1]), 8) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(12).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__first by:
          0.
<S>  New H13:  element(x, [1]) >= 0
<S>  New H19:  spark__unsigned__rotate_left_64(element(x, [1]), 8) >= 0
-S-  Applied substitution rule round_8_rules(13).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__last by:
          18446744073709551615.
<S>  New H14:  element(x, [1]) <= 18446744073709551615
<S>  New H20:  spark__unsigned__rotate_left_64(element(x, [1]), 8) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H3:  (element(x, [6]) + element(x, [1])) mod 18446744073709551616 >= 0
<S>  New H4:  (element(x, [6]) + element(x, [1])) mod 18446744073709551616 <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(24).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__first by:
          0.
<S>  New H11:  true
-S-  Applied substitution rule round_8_rules(25).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__last by:
          64.
<S>  New H12:  true
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
<S>  New H5:  true
<S>  New H7:  true
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H6:  true
<S>  New H8:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
***  Proved C1:  spark__unsigned__rotate_left_64(element(x, [1]), 8) >= 0
     using hypothesis H19.
***  Proved C2:  spark__unsigned__rotate_left_64(element(x, [1]), 8) <= 
          18446744073709551615
     using hypothesis H20.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_4.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [1]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [1]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) <= 
          interfaces__unsigned_64__last
%%%  Simplified H21 on reading formula in, to give:
     %%%  H21:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) >= 
          spark__unsigned__u64__first
%%%  Simplified H22 on reading formula in, to give:
     %%%  H22:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) <= 
          spark__unsigned__u64__last
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [1]), 
          r_512_7_0), (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus) >= spark__unsigned__u64__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [1]), 
          r_512_7_0), (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus) <= spark__unsigned__u64__last
***  Proved C3:  6 >= spark__crypto__i8__first
     using hypothesis H7.
***  Proved C4:  6 <= spark__crypto__i8__last
     using hypothesis H8.
***  Proved C5:  1 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C6:  1 <= spark__crypto__i8__last
     using hypothesis H6.
***  Proved C7:  1 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C8:  1 <= spark__crypto__i8__last
     using hypothesis H6.
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H21:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) >= 0
<S>  New C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [1]), 
          r_512_7_0), (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus) >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H22:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) <= 
          18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [1]), 
          r_512_7_0), (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus) <= 18446744073709551615
***  Proved C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [1]), 
          r_512_7_0), (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus) >= 0
     using hypotheses H3 & H21.
***  Proved C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [1]), 
          r_512_7_0), (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus) <= 18446744073709551615
     using hypotheses H3, H4, H21 & H22.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_5.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [1]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [1]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) <= 
          interfaces__unsigned_64__last
%%%  Simplified H21 on reading formula in, to give:
     %%%  H21:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) >= 
          spark__unsigned__u64__first
%%%  Simplified H22 on reading formula in, to give:
     %%%  H22:  spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0) <= 
          spark__unsigned__u64__last
%%%  Simplified H23 on reading formula in, to give:
     %%%  H23:  bit__xor(spark__unsigned__rotate_left_64(element(x, [1]), 
          r_512_7_0), (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus) >= spark__unsigned__u64__first
%%%  Simplified H24 on reading formula in, to give:
     %%%  H24:  bit__xor(spark__unsigned__rotate_left_64(element(x, [1]), 
          r_512_7_0), (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus) <= spark__unsigned__u64__last
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H7)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(update(update(x, [6], (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus), [1], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0), (element(
          x, [6]) + element(x, [1])) mod interfaces__unsigned_64__modulus)), [
          i___1]) and element(update(update(x, [6], (element(x, [6]) + element(
          x, [1])) mod interfaces__unsigned_64__modulus), [1], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0), (element(
          x, [6]) + element(x, [1])) mod interfaces__unsigned_64__modulus)), [
          i___1]) <= spark__unsigned__u64__last)
***  Proved C1:  true
***  Proved C2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(update(update(x, [6], (element(x, [6]) + element(x, [1])) mod 
          interfaces__unsigned_64__modulus), [1], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0), (element(
          x, [6]) + element(x, [1])) mod interfaces__unsigned_64__modulus)), [
          i___1]) and element(update(update(x, [6], (element(x, [6]) + element(
          x, [1])) mod interfaces__unsigned_64__modulus), [1], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [1]), r_512_7_0), (element(
          x, [6]) + element(x, [1])) mod interfaces__unsigned_64__modulus)), [
          i___1]) <= spark__unsigned__u64__last)
     using hypotheses H2, H3, H4, H5, H6, H7, H8, H23 & H24.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_6.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New C1:  (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
<S>  New C3:  true
<S>  New C5:  true
<S>  New C7:  true
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
<S>  New C4:  true
<S>  New C6:  true
<S>  New C8:  true
***  Proved C3:  true
***  Proved C5:  true
***  Proved C7:  true
***  Proved C4:  true
***  Proved C6:  true
***  Proved C8:  true
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New C1:  (element(x, [0]) + element(x, [7])) mod 18446744073709551616 >= 0
<S>  New C2:  (element(x, [0]) + element(x, [7])) mod 18446744073709551616 <= 
          18446744073709551615
***  Proved C1:  (element(x, [0]) + element(x, [7])) mod 18446744073709551616 
          >= 0
***  Proved C2:  (element(x, [0]) + element(x, [7])) mod 18446744073709551616 
          <= 18446744073709551615
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_7.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  element(x, [7]) >= interfaces__unsigned_64__first
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  element(x, [7]) <= interfaces__unsigned_64__last
***  Proved C5:  7 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C6:  7 <= spark__crypto__i8__last
     using hypothesis H6.
***  Proved C7:  7 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C8:  7 <= spark__crypto__i8__last
     using hypothesis H6.
-S-  Applied substitution rule round_8_rules(2).
     This was achieved by replacing all occurrences of r_512_7_1 by:
          35.
<S>  New C1:  35 >= spark__unsigned__shift_count__first
<S>  New C2:  35 <= spark__unsigned__shift_count__last
-S-  Applied substitution rule round_8_rules(24).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__first by:
          0.
<S>  New C1:  true
-S-  Applied substitution rule round_8_rules(25).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__last by:
          64.
<S>  New C2:  true
-S-  Applied substitution rule round_8_rules(12).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__first by:
          0.
<S>  New C3:  element(x, [7]) >= 0
-S-  Applied substitution rule round_8_rules(13).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__last by:
          18446744073709551615.
<S>  New C4:  element(x, [7]) <= 18446744073709551615
***  Proved C1:  true
***  Proved C2:  true
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H3:  (element(x, [0]) + element(x, [7])) mod 18446744073709551616 >= 
          spark__unsigned__u64__first
<S>  New H4:  (element(x, [0]) + element(x, [7])) mod 18446744073709551616 <= 
          spark__unsigned__u64__last
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [0]) + element(x, [7])) mod 18446744073709551616 >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [0]) + element(x, [7])) mod 18446744073709551616 <= 
          18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H5:  true
<S>  New H7:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H6:  true
<S>  New H8:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
***  Proved C3:  element(x, [7]) >= 0
     using hypothesis H2.
***  Proved C4:  element(x, [7]) <= 18446744073709551615
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_8.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [7]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [7]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) <= 
          interfaces__unsigned_64__last
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) >= 
          spark__unsigned__u64__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) <= 
          spark__unsigned__u64__last
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C1:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(2).
     This was achieved by replacing all occurrences of r_512_7_1 by:
          35.
<S>  New H11:  35 >= spark__unsigned__shift_count__first
<S>  New H12:  35 <= spark__unsigned__shift_count__last
<S>  New H19:  spark__unsigned__rotate_left_64(element(x, [7]), 35) >= 
          interfaces__unsigned_64__first
<S>  New H20:  spark__unsigned__rotate_left_64(element(x, [7]), 35) <= 
          interfaces__unsigned_64__last
<S>  New C1:  spark__unsigned__rotate_left_64(element(x, [7]), 35) >= 0
<S>  New C2:  spark__unsigned__rotate_left_64(element(x, [7]), 35) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(12).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__first by:
          0.
<S>  New H13:  element(x, [7]) >= 0
<S>  New H19:  spark__unsigned__rotate_left_64(element(x, [7]), 35) >= 0
-S-  Applied substitution rule round_8_rules(13).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__last by:
          18446744073709551615.
<S>  New H14:  element(x, [7]) <= 18446744073709551615
<S>  New H20:  spark__unsigned__rotate_left_64(element(x, [7]), 35) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H3:  (element(x, [0]) + element(x, [7])) mod 18446744073709551616 >= 0
<S>  New H4:  (element(x, [0]) + element(x, [7])) mod 18446744073709551616 <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(24).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__first by:
          0.
<S>  New H11:  true
-S-  Applied substitution rule round_8_rules(25).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__last by:
          64.
<S>  New H12:  true
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
<S>  New H5:  true
<S>  New H7:  true
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H6:  true
<S>  New H8:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
***  Proved C1:  spark__unsigned__rotate_left_64(element(x, [7]), 35) >= 0
     using hypothesis H19.
***  Proved C2:  spark__unsigned__rotate_left_64(element(x, [7]), 35) <= 
          18446744073709551615
     using hypothesis H20.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_9.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [7]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [7]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) <= 
          interfaces__unsigned_64__last
%%%  Simplified H21 on reading formula in, to give:
     %%%  H21:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) >= 
          spark__unsigned__u64__first
%%%  Simplified H22 on reading formula in, to give:
     %%%  H22:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) <= 
          spark__unsigned__u64__last
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [7]), 
          r_512_7_1), (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus) >= spark__unsigned__u64__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [7]), 
          r_512_7_1), (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus) <= spark__unsigned__u64__last
***  Proved C3:  0 >= spark__crypto__i8__first
     using hypothesis H7.
***  Proved C4:  0 <= spark__crypto__i8__last
     using hypothesis H8.
***  Proved C5:  7 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C6:  7 <= spark__crypto__i8__last
     using hypothesis H6.
***  Proved C7:  7 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C8:  7 <= spark__crypto__i8__last
     using hypothesis H6.
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H21:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) >= 0
<S>  New C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [7]), 
          r_512_7_1), (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus) >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H22:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) <= 
          18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [7]), 
          r_512_7_1), (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus) <= 18446744073709551615
***  Proved C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [7]), 
          r_512_7_1), (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus) >= 0
     using hypotheses H3 & H21.
***  Proved C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [7]), 
          r_512_7_1), (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus) <= 18446744073709551615
     using hypotheses H3, H4, H21 & H22.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_10.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [7]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [7]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) <= 
          interfaces__unsigned_64__last
%%%  Simplified H21 on reading formula in, to give:
     %%%  H21:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) >= 
          spark__unsigned__u64__first
%%%  Simplified H22 on reading formula in, to give:
     %%%  H22:  spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1) <= 
          spark__unsigned__u64__last
%%%  Simplified H23 on reading formula in, to give:
     %%%  H23:  bit__xor(spark__unsigned__rotate_left_64(element(x, [7]), 
          r_512_7_1), (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus) >= spark__unsigned__u64__first
%%%  Simplified H24 on reading formula in, to give:
     %%%  H24:  bit__xor(spark__unsigned__rotate_left_64(element(x, [7]), 
          r_512_7_1), (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus) <= spark__unsigned__u64__last
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H7)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(update(update(x, [0], (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus), [7], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1), (element(
          x, [0]) + element(x, [7])) mod interfaces__unsigned_64__modulus)), [
          i___1]) and element(update(update(x, [0], (element(x, [0]) + element(
          x, [7])) mod interfaces__unsigned_64__modulus), [7], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1), (element(
          x, [0]) + element(x, [7])) mod interfaces__unsigned_64__modulus)), [
          i___1]) <= spark__unsigned__u64__last)
***  Proved C1:  true
***  Proved C2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(update(update(x, [0], (element(x, [0]) + element(x, [7])) mod 
          interfaces__unsigned_64__modulus), [7], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1), (element(
          x, [0]) + element(x, [7])) mod interfaces__unsigned_64__modulus)), [
          i___1]) and element(update(update(x, [0], (element(x, [0]) + element(
          x, [7])) mod interfaces__unsigned_64__modulus), [7], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [7]), r_512_7_1), (element(
          x, [0]) + element(x, [7])) mod interfaces__unsigned_64__modulus)), [
          i___1]) <= spark__unsigned__u64__last)
     using hypotheses H2, H3, H4, H5, H6, H7, H8, H23 & H24.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_11.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New C1:  (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
<S>  New C3:  true
<S>  New C5:  true
<S>  New C7:  true
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
<S>  New C4:  true
<S>  New C6:  true
<S>  New C8:  true
***  Proved C3:  true
***  Proved C5:  true
***  Proved C7:  true
***  Proved C4:  true
***  Proved C6:  true
***  Proved C8:  true
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New C1:  (element(x, [2]) + element(x, [5])) mod 18446744073709551616 >= 0
<S>  New C2:  (element(x, [2]) + element(x, [5])) mod 18446744073709551616 <= 
          18446744073709551615
***  Proved C1:  (element(x, [2]) + element(x, [5])) mod 18446744073709551616 
          >= 0
***  Proved C2:  (element(x, [2]) + element(x, [5])) mod 18446744073709551616 
          <= 18446744073709551615
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_12.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  element(x, [5]) >= interfaces__unsigned_64__first
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  element(x, [5]) <= interfaces__unsigned_64__last
***  Proved C5:  5 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C6:  5 <= spark__crypto__i8__last
     using hypothesis H6.
***  Proved C7:  5 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C8:  5 <= spark__crypto__i8__last
     using hypothesis H6.
-S-  Applied substitution rule round_8_rules(3).
     This was achieved by replacing all occurrences of r_512_7_2 by:
          56.
<S>  New C1:  56 >= spark__unsigned__shift_count__first
<S>  New C2:  56 <= spark__unsigned__shift_count__last
-S-  Applied substitution rule round_8_rules(24).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__first by:
          0.
<S>  New C1:  true
-S-  Applied substitution rule round_8_rules(25).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__last by:
          64.
<S>  New C2:  true
-S-  Applied substitution rule round_8_rules(12).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__first by:
          0.
<S>  New C3:  element(x, [5]) >= 0
-S-  Applied substitution rule round_8_rules(13).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__last by:
          18446744073709551615.
<S>  New C4:  element(x, [5]) <= 18446744073709551615
***  Proved C1:  true
***  Proved C2:  true
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H3:  (element(x, [2]) + element(x, [5])) mod 18446744073709551616 >= 
          spark__unsigned__u64__first
<S>  New H4:  (element(x, [2]) + element(x, [5])) mod 18446744073709551616 <= 
          spark__unsigned__u64__last
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [2]) + element(x, [5])) mod 18446744073709551616 >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [2]) + element(x, [5])) mod 18446744073709551616 <= 
          18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H5:  true
<S>  New H7:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H6:  true
<S>  New H8:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
***  Proved C3:  element(x, [5]) >= 0
     using hypothesis H2.
***  Proved C4:  element(x, [5]) <= 18446744073709551615
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_13.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [5]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [5]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) <= 
          interfaces__unsigned_64__last
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) >= 
          spark__unsigned__u64__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) <= 
          spark__unsigned__u64__last
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C1:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(3).
     This was achieved by replacing all occurrences of r_512_7_2 by:
          56.
<S>  New H11:  56 >= spark__unsigned__shift_count__first
<S>  New H12:  56 <= spark__unsigned__shift_count__last
<S>  New H19:  spark__unsigned__rotate_left_64(element(x, [5]), 56) >= 
          interfaces__unsigned_64__first
<S>  New H20:  spark__unsigned__rotate_left_64(element(x, [5]), 56) <= 
          interfaces__unsigned_64__last
<S>  New C1:  spark__unsigned__rotate_left_64(element(x, [5]), 56) >= 0
<S>  New C2:  spark__unsigned__rotate_left_64(element(x, [5]), 56) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(12).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__first by:
          0.
<S>  New H13:  element(x, [5]) >= 0
<S>  New H19:  spark__unsigned__rotate_left_64(element(x, [5]), 56) >= 0
-S-  Applied substitution rule round_8_rules(13).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__last by:
          18446744073709551615.
<S>  New H14:  element(x, [5]) <= 18446744073709551615
<S>  New H20:  spark__unsigned__rotate_left_64(element(x, [5]), 56) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H3:  (element(x, [2]) + element(x, [5])) mod 18446744073709551616 >= 0
<S>  New H4:  (element(x, [2]) + element(x, [5])) mod 18446744073709551616 <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(24).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__first by:
          0.
<S>  New H11:  true
-S-  Applied substitution rule round_8_rules(25).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__last by:
          64.
<S>  New H12:  true
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
<S>  New H5:  true
<S>  New H7:  true
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H6:  true
<S>  New H8:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
***  Proved C1:  spark__unsigned__rotate_left_64(element(x, [5]), 56) >= 0
     using hypothesis H19.
***  Proved C2:  spark__unsigned__rotate_left_64(element(x, [5]), 56) <= 
          18446744073709551615
     using hypothesis H20.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_14.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [5]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [5]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) <= 
          interfaces__unsigned_64__last
%%%  Simplified H21 on reading formula in, to give:
     %%%  H21:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) >= 
          spark__unsigned__u64__first
%%%  Simplified H22 on reading formula in, to give:
     %%%  H22:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) <= 
          spark__unsigned__u64__last
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [5]), 
          r_512_7_2), (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus) >= spark__unsigned__u64__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [5]), 
          r_512_7_2), (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus) <= spark__unsigned__u64__last
***  Proved C3:  2 >= spark__crypto__i8__first
     using hypothesis H7.
***  Proved C4:  2 <= spark__crypto__i8__last
     using hypothesis H8.
***  Proved C5:  5 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C6:  5 <= spark__crypto__i8__last
     using hypothesis H6.
***  Proved C7:  5 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C8:  5 <= spark__crypto__i8__last
     using hypothesis H6.
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H21:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) >= 0
<S>  New C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [5]), 
          r_512_7_2), (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus) >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H22:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) <= 
          18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [5]), 
          r_512_7_2), (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus) <= 18446744073709551615
***  Proved C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [5]), 
          r_512_7_2), (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus) >= 0
     using hypotheses H3 & H21.
***  Proved C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [5]), 
          r_512_7_2), (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus) <= 18446744073709551615
     using hypotheses H3, H4, H21 & H22.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_15.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [5]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [5]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) <= 
          interfaces__unsigned_64__last
%%%  Simplified H21 on reading formula in, to give:
     %%%  H21:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) >= 
          spark__unsigned__u64__first
%%%  Simplified H22 on reading formula in, to give:
     %%%  H22:  spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2) <= 
          spark__unsigned__u64__last
%%%  Simplified H23 on reading formula in, to give:
     %%%  H23:  bit__xor(spark__unsigned__rotate_left_64(element(x, [5]), 
          r_512_7_2), (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus) >= spark__unsigned__u64__first
%%%  Simplified H24 on reading formula in, to give:
     %%%  H24:  bit__xor(spark__unsigned__rotate_left_64(element(x, [5]), 
          r_512_7_2), (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus) <= spark__unsigned__u64__last
---  Hypothesis H25 has been replaced by "true".  (It is already present, as H7)
          .
---  Hypothesis H26 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H27 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H28 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H29 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H30 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(update(update(x, [2], (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus), [5], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2), (element(
          x, [2]) + element(x, [5])) mod interfaces__unsigned_64__modulus)), [
          i___1]) and element(update(update(x, [2], (element(x, [2]) + element(
          x, [5])) mod interfaces__unsigned_64__modulus), [5], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2), (element(
          x, [2]) + element(x, [5])) mod interfaces__unsigned_64__modulus)), [
          i___1]) <= spark__unsigned__u64__last)
***  Proved C1:  true
***  Proved C2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(update(update(x, [2], (element(x, [2]) + element(x, [5])) mod 
          interfaces__unsigned_64__modulus), [5], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2), (element(
          x, [2]) + element(x, [5])) mod interfaces__unsigned_64__modulus)), [
          i___1]) and element(update(update(x, [2], (element(x, [2]) + element(
          x, [5])) mod interfaces__unsigned_64__modulus), [5], bit__xor(
          spark__unsigned__rotate_left_64(element(x, [5]), r_512_7_2), (element(
          x, [2]) + element(x, [5])) mod interfaces__unsigned_64__modulus)), [
          i___1]) <= spark__unsigned__u64__last)
     using hypotheses H2, H3, H4, H5, H6, H7, H8, H23 & H24.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_16.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New C1:  (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
<S>  New C3:  true
<S>  New C5:  true
<S>  New C7:  true
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
<S>  New C4:  true
<S>  New C6:  true
<S>  New C8:  true
***  Proved C3:  true
***  Proved C5:  true
***  Proved C7:  true
***  Proved C4:  true
***  Proved C6:  true
***  Proved C8:  true
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New C1:  (element(x, [4]) + element(x, [3])) mod 18446744073709551616 >= 0
<S>  New C2:  (element(x, [4]) + element(x, [3])) mod 18446744073709551616 <= 
          18446744073709551615
***  Proved C1:  (element(x, [4]) + element(x, [3])) mod 18446744073709551616 
          >= 0
***  Proved C2:  (element(x, [4]) + element(x, [3])) mod 18446744073709551616 
          <= 18446744073709551615
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_17.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  element(x, [3]) >= interfaces__unsigned_64__first
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  element(x, [3]) <= interfaces__unsigned_64__last
***  Proved C5:  3 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C6:  3 <= spark__crypto__i8__last
     using hypothesis H6.
***  Proved C7:  3 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C8:  3 <= spark__crypto__i8__last
     using hypothesis H6.
-S-  Applied substitution rule round_8_rules(4).
     This was achieved by replacing all occurrences of r_512_7_3 by:
          22.
<S>  New C1:  22 >= spark__unsigned__shift_count__first
<S>  New C2:  22 <= spark__unsigned__shift_count__last
-S-  Applied substitution rule round_8_rules(24).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__first by:
          0.
<S>  New C1:  true
-S-  Applied substitution rule round_8_rules(25).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__last by:
          64.
<S>  New C2:  true
-S-  Applied substitution rule round_8_rules(12).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__first by:
          0.
<S>  New C3:  element(x, [3]) >= 0
-S-  Applied substitution rule round_8_rules(13).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__last by:
          18446744073709551615.
<S>  New C4:  element(x, [3]) <= 18446744073709551615
***  Proved C1:  true
***  Proved C2:  true
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H3:  (element(x, [4]) + element(x, [3])) mod 18446744073709551616 >= 
          spark__unsigned__u64__first
<S>  New H4:  (element(x, [4]) + element(x, [3])) mod 18446744073709551616 <= 
          spark__unsigned__u64__last
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [4]) + element(x, [3])) mod 18446744073709551616 >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [4]) + element(x, [3])) mod 18446744073709551616 <= 
          18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H5:  true
<S>  New H7:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H6:  true
<S>  New H8:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
***  Proved C3:  element(x, [3]) >= 0
     using hypothesis H2.
***  Proved C4:  element(x, [3]) <= 18446744073709551615
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_18.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [3]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [3]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) <= 
          interfaces__unsigned_64__last
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) >= 
          spark__unsigned__u64__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) <= 
          spark__unsigned__u64__last
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C1:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(4).
     This was achieved by replacing all occurrences of r_512_7_3 by:
          22.
<S>  New H11:  22 >= spark__unsigned__shift_count__first
<S>  New H12:  22 <= spark__unsigned__shift_count__last
<S>  New H19:  spark__unsigned__rotate_left_64(element(x, [3]), 22) >= 
          interfaces__unsigned_64__first
<S>  New H20:  spark__unsigned__rotate_left_64(element(x, [3]), 22) <= 
          interfaces__unsigned_64__last
<S>  New C1:  spark__unsigned__rotate_left_64(element(x, [3]), 22) >= 0
<S>  New C2:  spark__unsigned__rotate_left_64(element(x, [3]), 22) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(12).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__first by:
          0.
<S>  New H13:  element(x, [3]) >= 0
<S>  New H19:  spark__unsigned__rotate_left_64(element(x, [3]), 22) >= 0
-S-  Applied substitution rule round_8_rules(13).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__last by:
          18446744073709551615.
<S>  New H14:  element(x, [3]) <= 18446744073709551615
<S>  New H20:  spark__unsigned__rotate_left_64(element(x, [3]), 22) <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(16).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H3:  (element(x, [4]) + element(x, [3])) mod 18446744073709551616 >= 0
<S>  New H4:  (element(x, [4]) + element(x, [3])) mod 18446744073709551616 <= 
          18446744073709551615
-S-  Applied substitution rule round_8_rules(24).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__first by:
          0.
<S>  New H11:  true
-S-  Applied substitution rule round_8_rules(25).
     This was achieved by replacing all occurrences of 
          spark__unsigned__shift_count__last by:
          64.
<S>  New H12:  true
-S-  Applied substitution rule round_8_rules(29).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x, [i___1]) and element(x, [
          i___1]) <= 18446744073709551615)
<S>  New H5:  true
<S>  New H7:  true
-S-  Applied substitution rule round_8_rules(30).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H6:  true
<S>  New H8:  true
<S>  New H2:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x, [i___1]) and element(x, [i___1]) <= 18446744073709551615)
***  Proved C1:  spark__unsigned__rotate_left_64(element(x, [3]), 22) >= 0
     using hypothesis H19.
***  Proved C2:  spark__unsigned__rotate_left_64(element(x, [3]), 22) <= 
          18446744073709551615
     using hypothesis H20.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_round_8_19.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x, [i___1]) and element(x, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H10 has been replaced by "true".  (It is already present, as H8)
          .
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  element(x, [3]) >= interfaces__unsigned_64__first
%%%  Simplified H14 on reading formula in, to give:
     %%%  H14:  element(x, [3]) <= interfaces__unsigned_64__last
---  Hypothesis H15 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H16 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H17 has been replaced by "true".  (It is already present, as H5)
          .
---  Hypothesis H18 has been replaced by "true".  (It is already present, as H6)
          .
%%%  Simplified H19 on reading formula in, to give:
     %%%  H19:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) >= 
          interfaces__unsigned_64__first
%%%  Simplified H20 on reading formula in, to give:
     %%%  H20:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) <= 
          interfaces__unsigned_64__last
%%%  Simplified H21 on reading formula in, to give:
     %%%  H21:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) >= 
          spark__unsigned__u64__first
%%%  Simplified H22 on reading formula in, to give:
     %%%  H22:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) <= 
          spark__unsigned__u64__last
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [3]), 
          r_512_7_3), (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus) >= spark__unsigned__u64__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [3]), 
          r_512_7_3), (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus) <= spark__unsigned__u64__last
***  Proved C3:  4 >= spark__crypto__i8__first
     using hypothesis H7.
***  Proved C4:  4 <= spark__crypto__i8__last
     using hypothesis H8.
***  Proved C5:  3 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C6:  3 <= spark__crypto__i8__last
     using hypothesis H6.
***  Proved C7:  3 >= spark__crypto__i8__first
     using hypothesis H5.
***  Proved C8:  3 <= spark__crypto__i8__last
     using hypothesis H6.
-S-  Applied substitution rule round_8_rules(18).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= spark__unsigned__u64__last)
<S>  New H3:  (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H21:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) >= 0
<S>  New C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [3]), 
          r_512_7_3), (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus) >= 0
-S-  Applied substitution rule round_8_rules(19).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H4:  (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H22:  spark__unsigned__rotate_left_64(element(x, [3]), r_512_7_3) <= 
          18446744073709551615
<S>  New H2:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x, [i___1]) and 
          element(x, [i___1]) <= 18446744073709551615)
<S>  New C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [3]), 
          r_512_7_3), (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus) <= 18446744073709551615
***  Proved C1:  bit__xor(spark__unsigned__rotate_left_64(element(x, [3]), 
          r_512_7_3), (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus) >= 0
     using hypotheses H3 & H21.
***  Proved C2:  bit__xor(spark__unsigned__rotate_left_64(element(x, [3]), 
          r_512_7_3), (element(x, [4]) + element(x, [3])) mod 
          interfaces__unsigned_64__modulus) <= 18446744073709551615
     using hypotheses H3, H4, H21 & H22.
***  PROVED VC.


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

