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

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



SPARK Simplifier Pro Edition


procedure Skein.Skein_512_Process_Block.Inject_Key






@@@@@@@@@@  VC: procedure_inject_key_1.  @@@@@@@@@@
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H5 on reading formula in, to give:
     %%%  H5:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H6 on reading formula in, to give:
     %%%  H6:  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)
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  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)
%%%  Simplified C6 on reading formula in, to give:
     %%%  C6:  true
%%%  Simplified C8 on reading formula in, to give:
     %%%  C8:  true
***  Proved C1:  r >= spark__unsigned__u64__first
     using hypothesis H2.
***  Proved C2:  r <= spark__unsigned__u64__last
     using hypothesis H3.
***  Proved C3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 
          spark__unsigned__u64__last)
     using hypothesis H4.
***  Proved C4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 
          spark__unsigned__u64__last)
     using hypothesis H5.
***  Proved C5:  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)
     using hypothesis H6.
***  Proved C6:  true
***  Proved C8:  true
-S-  Applied substitution rule inject_key_rules(47).
     This was achieved by replacing all occurrences of injection_range__first 
          by:
          0.
<S>  New C7:  0 <= injection_range__last
<S>  New C9:  0 <= injection_range__last
-S-  Applied substitution rule inject_key_rules(48).
     This was achieved by replacing all occurrences of injection_range__last by:
          7.
<S>  New C7:  true
<S>  New C9:  true
***  Proved C7:  true
***  Proved C9:  true
***  PROVED VC.


@@@@@@@@@@  VC: procedure_inject_key_2.  @@@@@@@@@@
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H5 on reading formula in, to give:
     %%%  H5:  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 H8 has been replaced by "true".  (It is already present, as H6).
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as 
          H19).
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H20).
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(update(x, [loop__1__i], (element(x, [loop__1__i]) + element(
          ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus mod 
          ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [i___1]) and element(update(x, [
          loop__1__i], (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i)
           mod interfaces__unsigned_64__modulus mod ks_modulus mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [i___1]) <= 
          spark__unsigned__u64__last)
***  Proved C1:  r >= spark__unsigned__u64__first
     using hypothesis H1.
***  Proved C2:  r <= spark__unsigned__u64__last
     using hypothesis H2.
***  Proved C3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 
          spark__unsigned__u64__last)
     using hypothesis H3.
***  Proved C4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 
          spark__unsigned__u64__last)
     using hypothesis H4.
***  Proved C5:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(update(x, [loop__1__i], (element(x, [loop__1__i]) + element(
          ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus mod 
          ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [i___1]) and element(update(x, [
          loop__1__i], (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i)
           mod interfaces__unsigned_64__modulus mod ks_modulus mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [i___1]) <= 
          spark__unsigned__u64__last)
     using hypotheses H5, H10, H11, H19 & H20.
***  Proved C6:  loop__1__i + 1 >= injection_range__first
     using hypothesis H6.
***  Proved C8:  loop__1__i + 1 >= injection_range__first
     using hypothesis H6.
-S-  Applied substitution rule inject_key_rules(48).
     This was achieved by replacing all occurrences of injection_range__last by:
          7.
<S>  New H7:  loop__1__i <= 7
<S>  New H23:  not loop__1__i = 7
<S>  New C7:  loop__1__i <= 6
<S>  New C9:  loop__1__i <= 6
***  Proved C7:  loop__1__i <= 6
     using hypotheses H7 & H23.
***  Proved C9:  loop__1__i <= 6
     using hypotheses H7 & H23.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_inject_key_3.  @@@@@@@@@@
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H5 on reading formula in, to give:
     %%%  H5:  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 H8 has been replaced by "true".  (It is already present, as H6).
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
-S-  Applied substitution rule inject_key_rules(21).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H1:  r >= 0
<S>  New H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and 
          element(ks, [i___1]) <= spark__unsigned__u64__last)
<S>  New H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and 
          element(ts, [i___1]) <= spark__unsigned__u64__last)
<S>  New H5:  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, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod ks_modulus mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C8:  loop__1__i >= 0
-S-  Applied substitution rule inject_key_rules(22).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H2:  r <= 18446744073709551615
<S>  New H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and 
          element(ks, [i___1]) <= 18446744073709551615)
<S>  New H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and 
          element(ts, [i___1]) <= 18446744073709551615)
<S>  New H5:  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, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod ks_modulus mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New C9:  loop__1__i <= 18446744073709551615
-S-  Applied substitution rule inject_key_rules(37).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and element(ks, [
          i___1]) <= 18446744073709551615)
<S>  New C3:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 
          ks_modulus mod interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule inject_key_rules(38).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 8 -> 0 <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 18446744073709551615)
<S>  New C4:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 
          ks_modulus mod interfaces__unsigned_64__modulus <= 8
-S-  Applied substitution rule inject_key_rules(9).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New C5:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 
          ks_modulus mod interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule inject_key_rules(10).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New C6:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 
          ks_modulus mod interfaces__unsigned_64__modulus <= 2147483647
-S-  Applied substitution rule inject_key_rules(32).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H5:  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 C10:  loop__1__i >= 0
<S>  New C12:  loop__1__i >= 0
-S-  Applied substitution rule inject_key_rules(33).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H5:  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 C11:  loop__1__i <= 7
<S>  New C13:  loop__1__i <= 7
-S-  Applied substitution rule inject_key_rules(2).
     This was achieved by replacing all occurrences of ks_modulus by:
          9.
<S>  New C7:  true
<S>  New C1:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C2:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New C3:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C4:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus <= 8
<S>  New C5:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C6:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus <= 2147483647
-S-  Applied substitution rule inject_key_rules(19).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New C1:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          18446744073709551616 mod 9 mod 18446744073709551616])) mod 
          18446744073709551616 >= 0
<S>  New C2:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          18446744073709551616 mod 9 mod 18446744073709551616])) mod 
          18446744073709551616 <= 18446744073709551615
<S>  New C3:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= 0
<S>  New C4:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= 8
<S>  New C5:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= 0
<S>  New C6:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= 2147483647
-S-  Applied substitution rule inject_key_rules(27).
     This was achieved by replacing all occurrences of spark__crypto__i3__first 
          by:
          0.
<S>  New H4:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and element(ts, [
          i___1]) <= 18446744073709551615)
-S-  Applied substitution rule inject_key_rules(28).
     This was achieved by replacing all occurrences of spark__crypto__i3__last 
          by:
          2.
<S>  New H4:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 2 -> 0 <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule inject_key_rules(47).
     This was achieved by replacing all occurrences of injection_range__first 
          by:
          0.
<S>  New H6:  loop__1__i >= 0
-S-  Applied substitution rule inject_key_rules(48).
     This was achieved by replacing all occurrences of injection_range__last by:
          7.
<S>  New H7:  loop__1__i <= 7
***  Proved C8:  loop__1__i >= 0
     using hypothesis H6.
***  Proved C9:  loop__1__i <= 18446744073709551615
     using hypothesis H7.
***  Proved C10:  loop__1__i >= 0
     using hypothesis H6.
***  Proved C12:  loop__1__i >= 0
     using hypothesis H6.
***  Proved C11:  loop__1__i <= 7
     using hypothesis H7.
***  Proved C13:  loop__1__i <= 7
     using hypothesis H7.
***  Proved C7:  true
***  Proved C1:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          18446744073709551616 mod 9 mod 18446744073709551616])) mod 
          18446744073709551616 >= 0
***  Proved C2:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          18446744073709551616 mod 9 mod 18446744073709551616])) mod 
          18446744073709551616 <= 18446744073709551615
***  Proved C3:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= 0
***  Proved C5:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= 0
---  Eliminated hypothesis H8 (true-hypothesis).
---  Eliminated hypothesis H9 (true-hypothesis).
***  Proved C4:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= 8
***  Proved C6:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= 2147483647
***  PROVED VC.


@@@@@@@@@@  VC: procedure_inject_key_4.  @@@@@@@@@@
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H5 on reading formula in, to give:
     %%%  H5:  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 H8 has been replaced by "true".  (It is already present, as H6).
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as 
          H19).
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H20).
%%%  Simplified C7 on reading formula in, to give:
     %%%  C7:  true
***  Proved C7:  true
-S-  Applied substitution rule inject_key_rules(21).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H1:  r >= 0
<S>  New H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and 
          element(ks, [i___1]) <= spark__unsigned__u64__last)
<S>  New H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and 
          element(ts, [i___1]) <= spark__unsigned__u64__last)
<S>  New H5:  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 H10:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod ks_modulus mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H17:  loop__1__i >= 0
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 3]) + element(ts, [r mod 3 
          mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule inject_key_rules(22).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H2:  r <= 18446744073709551615
<S>  New H11:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod ks_modulus mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H18:  loop__1__i <= 18446744073709551615
<S>  New H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and 
          element(ks, [i___1]) <= 18446744073709551615)
<S>  New H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and 
          element(ts, [i___1]) <= 18446744073709551615)
<S>  New H5:  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(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 3]) + element(ts, [r mod 3 
          mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
-S-  Applied substitution rule inject_key_rules(27).
     This was achieved by replacing all occurrences of spark__crypto__i3__first 
          by:
          0.
<S>  New H4:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and element(ts, [
          i___1]) <= 18446744073709551615)
<S>  New C3:  r mod 3 mod interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule inject_key_rules(28).
     This was achieved by replacing all occurrences of spark__crypto__i3__last 
          by:
          2.
<S>  New H4:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 2 -> 0 <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 18446744073709551615)
<S>  New C4:  r mod 3 mod interfaces__unsigned_64__modulus <= 2
-S-  Applied substitution rule inject_key_rules(9).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H14:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 
          ks_modulus mod interfaces__unsigned_64__modulus >= 0
<S>  New C5:  r mod 3 mod interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule inject_key_rules(10).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H15:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 
          ks_modulus mod interfaces__unsigned_64__modulus <= 2147483647
<S>  New C6:  r mod 3 mod interfaces__unsigned_64__modulus <= 2147483647
-S-  Applied substitution rule inject_key_rules(32).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H19:  loop__1__i >= 0
<S>  New H5:  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 C8:  wcnt >= 3
<S>  New C12:  wcnt >= 3
-S-  Applied substitution rule inject_key_rules(1).
     This was achieved by replacing all occurrences of wcnt by:
          8.
<S>  New C9:  5 <= spark__crypto__i8__last
<S>  New C10:  5 >= integer__base__first
<S>  New C11:  5 <= integer__base__last
<S>  New C13:  5 <= spark__crypto__i8__last
<S>  New C14:  5 >= integer__base__first
<S>  New C15:  5 <= integer__base__last
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New C8:  true
<S>  New C12:  true
-S-  Applied substitution rule inject_key_rules(33).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H20:  loop__1__i <= 7
<S>  New H5:  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 C9:  true
<S>  New C13:  true
-S-  Applied substitution rule inject_key_rules(6).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New C10:  true
<S>  New C14:  true
-S-  Applied substitution rule inject_key_rules(7).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New C11:  true
<S>  New C15:  true
***  Proved C8:  true
***  Proved C12:  true
***  Proved C9:  true
***  Proved C13:  true
***  Proved C10:  true
***  Proved C14:  true
***  Proved C11:  true
***  Proved C15:  true
-S-  Applied substitution rule inject_key_rules(2).
     This was achieved by replacing all occurrences of ks_modulus by:
          9.
<S>  New H10:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H11:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H12:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus >= spark__crypto__i9__first
<S>  New H13:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus <= spark__crypto__i9__last
<S>  New H14:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H15:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus <= 2147483647
<S>  New H16:  true
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
-S-  Applied substitution rule inject_key_rules(19).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H10:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          18446744073709551616 mod 9 mod 18446744073709551616])) mod 
          18446744073709551616 >= 0
<S>  New H11:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          18446744073709551616 mod 9 mod 18446744073709551616])) mod 
          18446744073709551616 <= 18446744073709551615
<S>  New H12:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= spark__crypto__i9__first
<S>  New H13:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= spark__crypto__i9__last
<S>  New H14:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= 0
<S>  New H15:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= 2147483647
<S>  New C3:  r mod 3 mod 18446744073709551616 >= 0
<S>  New C4:  r mod 3 mod 18446744073709551616 <= 2
<S>  New C5:  r mod 3 mod 18446744073709551616 >= 0
<S>  New C6:  r mod 3 mod 18446744073709551616 <= 2147483647
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [5]) + element(ts, 
          [r mod 3 mod 18446744073709551616])) mod 18446744073709551616 >= 0
<S>  New C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [5]) + element(ts, 
          [r mod 3 mod 18446744073709551616])) mod 18446744073709551616 <= 
          18446744073709551615
-S-  Applied substitution rule inject_key_rules(37).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and element(ks, [
          i___1]) <= 18446744073709551615)
<S>  New H12:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= 0
-S-  Applied substitution rule inject_key_rules(38).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H13:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= 8
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 8 -> 0 <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule inject_key_rules(47).
     This was achieved by replacing all occurrences of injection_range__first 
          by:
          0.
<S>  New H6:  loop__1__i >= 0
-S-  Applied substitution rule inject_key_rules(48).
     This was achieved by replacing all occurrences of injection_range__last by:
          7.
<S>  New H7:  loop__1__i <= 7
<S>  New H23:  loop__1__i = 7
***  Proved C3:  r mod 3 mod 18446744073709551616 >= 0
***  Proved C5:  r mod 3 mod 18446744073709551616 >= 0
***  Proved C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [5]) + element(ts, 
          [r mod 3 mod 18446744073709551616])) mod 18446744073709551616 >= 0
***  Proved C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [5]) + element(ts, 
          [r mod 3 mod 18446744073709551616])) mod 18446744073709551616 <= 
          18446744073709551615
---  Eliminated hypothesis H8 (true-hypothesis).
---  Eliminated hypothesis H9 (true-hypothesis).
---  Eliminated hypothesis H21 (true-hypothesis).
---  Eliminated hypothesis H22 (true-hypothesis).
---  Eliminated hypothesis H16 (true-hypothesis).
---  Eliminated hypothesis H19 (duplicate of H17).
---  Eliminated hypothesis H14 (duplicate of H12).
---  Eliminated hypothesis H17 (duplicate of H6).
---  Eliminated hypothesis H20 (duplicate of H7).
---  Eliminated hypothesis H6 (redundant, given H23).
---  Eliminated hypothesis H7 (redundant, given H23).
---  Eliminated hypothesis H15 (redundant, given H13).
---  Eliminated hypothesis H18 (redundant, given H23).
-S-  Eliminated hypothesis H23.
     This was achieved by replacing all occurrences of loop__1__i by:
          7.
<S>  New H10:  (element(x, [7]) + element(ks, [(r + 7) mod 18446744073709551616 
          mod 9 mod 18446744073709551616])) mod 18446744073709551616 >= 0
<S>  New H11:  (element(x, [7]) + element(ks, [(r + 7) mod 18446744073709551616 
          mod 9 mod 18446744073709551616])) mod 18446744073709551616 <= 
          18446744073709551615
<S>  New H12:  (r + 7) mod 18446744073709551616 mod 9 mod 18446744073709551616 
          >= 0
<S>  New H13:  (r + 7) mod 18446744073709551616 mod 9 mod 18446744073709551616 
          <= 8
***  Proved C4:  r mod 3 mod 18446744073709551616 <= 2
***  Proved C6:  r mod 3 mod 18446744073709551616 <= 2147483647
***  PROVED VC.


@@@@@@@@@@  VC: procedure_inject_key_5.  @@@@@@@@@@
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H5 on reading formula in, to give:
     %%%  H5:  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 H8 has been replaced by "true".  (It is already present, as H6).
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as 
          H19).
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H20).
%%%  Simplified H30 on reading formula in, to give:
     %%%  H30:  true
---  Hypothesis H35 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H36 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H33).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H34).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 2]) + element(ts, [(r + 1) 
          mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= spark__unsigned__u64__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 2]) + element(ts, [(r + 1) 
          mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= spark__unsigned__u64__last
%%%  Simplified C7 on reading formula in, to give:
     %%%  C7:  true
***  Proved C7:  true
-S-  Applied substitution rule inject_key_rules(21).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H1:  r >= 0
<S>  New H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and 
          element(ks, [i___1]) <= spark__unsigned__u64__last)
<S>  New H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and 
          element(ts, [i___1]) <= spark__unsigned__u64__last)
<S>  New H5:  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 H10:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod ks_modulus mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H17:  loop__1__i >= 0
<S>  New H24:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 3]) + element(ts, [r mod 3 
          mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 2]) + element(ts, [(r + 1) 
          mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule inject_key_rules(22).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H2:  r <= 18446744073709551615
<S>  New H11:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod ks_modulus mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H18:  loop__1__i <= 18446744073709551615
<S>  New H25:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 3]) + element(ts, [r mod 3 
          mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and 
          element(ks, [i___1]) <= 18446744073709551615)
<S>  New H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and 
          element(ts, [i___1]) <= 18446744073709551615)
<S>  New H5:  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(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 2]) + element(ts, [(r + 1) 
          mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
-S-  Applied substitution rule inject_key_rules(27).
     This was achieved by replacing all occurrences of spark__crypto__i3__first 
          by:
          0.
<S>  New H26:  r mod 3 mod interfaces__unsigned_64__modulus >= 0
<S>  New H4:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and element(ts, [
          i___1]) <= 18446744073709551615)
<S>  New C3:  (r + 1) mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule inject_key_rules(28).
     This was achieved by replacing all occurrences of spark__crypto__i3__last 
          by:
          2.
<S>  New H27:  r mod 3 mod interfaces__unsigned_64__modulus <= 2
<S>  New H4:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 2 -> 0 <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 18446744073709551615)
<S>  New C4:  (r + 1) mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus <= 2
-S-  Applied substitution rule inject_key_rules(9).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H14:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 
          ks_modulus mod interfaces__unsigned_64__modulus >= 0
<S>  New H28:  r mod 3 mod interfaces__unsigned_64__modulus >= 0
<S>  New C5:  (r + 1) mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule inject_key_rules(10).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H15:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 
          ks_modulus mod interfaces__unsigned_64__modulus <= 2147483647
<S>  New H29:  r mod 3 mod interfaces__unsigned_64__modulus <= 2147483647
<S>  New C6:  (r + 1) mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus <= 2147483647
-S-  Applied substitution rule inject_key_rules(32).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H19:  loop__1__i >= 0
<S>  New H31:  wcnt >= 3
<S>  New H5:  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 C8:  wcnt >= 2
<S>  New C12:  wcnt >= 2
-S-  Applied substitution rule inject_key_rules(1).
     This was achieved by replacing all occurrences of wcnt by:
          8.
<S>  New H32:  5 <= spark__crypto__i8__last
<S>  New H33:  5 >= integer__base__first
<S>  New H34:  5 <= integer__base__last
<S>  New H24:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H25:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H31:  true
<S>  New C9:  6 <= spark__crypto__i8__last
<S>  New C10:  6 >= integer__base__first
<S>  New C11:  6 <= integer__base__last
<S>  New C13:  6 <= spark__crypto__i8__last
<S>  New C14:  6 >= integer__base__first
<S>  New C15:  6 <= integer__base__last
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [6]) + element(ts, [(r + 1) mod 
          interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [6]) + element(ts, [(r + 1) mod 
          interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New C8:  true
<S>  New C12:  true
-S-  Applied substitution rule inject_key_rules(33).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H20:  loop__1__i <= 7
<S>  New H5:  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 H32:  true
<S>  New C9:  true
<S>  New C13:  true
-S-  Applied substitution rule inject_key_rules(6).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New H33:  true
<S>  New C10:  true
<S>  New C14:  true
-S-  Applied substitution rule inject_key_rules(7).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New H34:  true
<S>  New C11:  true
<S>  New C15:  true
***  Proved C8:  true
***  Proved C12:  true
***  Proved C9:  true
***  Proved C13:  true
***  Proved C10:  true
***  Proved C14:  true
***  Proved C11:  true
***  Proved C15:  true
-S-  Applied substitution rule inject_key_rules(2).
     This was achieved by replacing all occurrences of ks_modulus by:
          9.
<S>  New H10:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H11:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H12:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus >= spark__crypto__i9__first
<S>  New H13:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus <= spark__crypto__i9__last
<S>  New H14:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H15:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus <= 2147483647
<S>  New H16:  true
<S>  New H24:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H25:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [6]) + element(ts, [(r + 1) mod 
          interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [6]) + element(ts, [(r + 1) mod 
          interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
-S-  Applied substitution rule inject_key_rules(19).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H26:  r mod 3 mod 18446744073709551616 >= 0
<S>  New H27:  r mod 3 mod 18446744073709551616 <= 2
<S>  New H28:  r mod 3 mod 18446744073709551616 >= 0
<S>  New H29:  r mod 3 mod 18446744073709551616 <= 2147483647
<S>  New H10:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          18446744073709551616 mod 9 mod 18446744073709551616])) mod 
          18446744073709551616 >= 0
<S>  New H11:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          18446744073709551616 mod 9 mod 18446744073709551616])) mod 
          18446744073709551616 <= 18446744073709551615
<S>  New H12:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= spark__crypto__i9__first
<S>  New H13:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= spark__crypto__i9__last
<S>  New H14:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= 0
<S>  New H15:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= 2147483647
<S>  New H24:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [5]) + element(ts, 
          [r mod 3 mod 18446744073709551616])) mod 18446744073709551616 >= 0
<S>  New H25:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [5]) + element(ts, 
          [r mod 3 mod 18446744073709551616])) mod 18446744073709551616 <= 
          18446744073709551615
<S>  New C3:  (r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616 
          >= 0
<S>  New C4:  (r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616 
          <= 2
<S>  New C5:  (r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616 
          >= 0
<S>  New C6:  (r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616 
          <= 2147483647
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [6]) + element(ts, 
          [(r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616])) 
          mod 18446744073709551616 >= 0
<S>  New C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [6]) + element(ts, 
          [(r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616])) 
          mod 18446744073709551616 <= 18446744073709551615
-S-  Applied substitution rule inject_key_rules(37).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and element(ks, [
          i___1]) <= 18446744073709551615)
<S>  New H12:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= 0
-S-  Applied substitution rule inject_key_rules(38).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H13:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= 8
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 8 -> 0 <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule inject_key_rules(47).
     This was achieved by replacing all occurrences of injection_range__first 
          by:
          0.
<S>  New H6:  loop__1__i >= 0
-S-  Applied substitution rule inject_key_rules(48).
     This was achieved by replacing all occurrences of injection_range__last by:
          7.
<S>  New H7:  loop__1__i <= 7
<S>  New H23:  loop__1__i = 7
***  Proved C3:  (r + 1) mod 18446744073709551616 mod 3 mod 
          18446744073709551616 >= 0
***  Proved C5:  (r + 1) mod 18446744073709551616 mod 3 mod 
          18446744073709551616 >= 0
***  Proved C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [6]) + element(ts, 
          [(r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616])) 
          mod 18446744073709551616 >= 0
***  Proved C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [6]) + element(ts, 
          [(r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616])) 
          mod 18446744073709551616 <= 18446744073709551615
---  Eliminated hypothesis H8 (true-hypothesis).
---  Eliminated hypothesis H9 (true-hypothesis).
---  Eliminated hypothesis H21 (true-hypothesis).
---  Eliminated hypothesis H22 (true-hypothesis).
---  Eliminated hypothesis H30 (true-hypothesis).
---  Eliminated hypothesis H31 (true-hypothesis).
---  Eliminated hypothesis H32 (true-hypothesis).
---  Eliminated hypothesis H33 (true-hypothesis).
---  Eliminated hypothesis H34 (true-hypothesis).
---  Eliminated hypothesis H35 (true-hypothesis).
---  Eliminated hypothesis H36 (true-hypothesis).
---  Eliminated hypothesis H37 (true-hypothesis).
---  Eliminated hypothesis H38 (true-hypothesis).
---  Eliminated hypothesis H16 (true-hypothesis).
---  Eliminated hypothesis H19 (duplicate of H17).
---  Eliminated hypothesis H28 (duplicate of H26).
---  Eliminated hypothesis H14 (duplicate of H12).
---  Eliminated hypothesis H17 (duplicate of H6).
---  Eliminated hypothesis H20 (duplicate of H7).
---  Eliminated hypothesis H6 (redundant, given H23).
---  Eliminated hypothesis H7 (redundant, given H23).
---  Eliminated hypothesis H15 (redundant, given H13).
---  Eliminated hypothesis H18 (redundant, given H23).
---  Eliminated hypothesis H29 (redundant, given H27).
-S-  Eliminated hypothesis H23.
     This was achieved by replacing all occurrences of loop__1__i by:
          7.
<S>  New H10:  (element(x, [7]) + element(ks, [(r + 7) mod 18446744073709551616 
          mod 9 mod 18446744073709551616])) mod 18446744073709551616 >= 0
<S>  New H11:  (element(x, [7]) + element(ks, [(r + 7) mod 18446744073709551616 
          mod 9 mod 18446744073709551616])) mod 18446744073709551616 <= 
          18446744073709551615
<S>  New H24:  (element(x, [5]) + element(ts, [r mod 3 mod 18446744073709551616]
          )) mod 18446744073709551616 >= 0
<S>  New H25:  (element(x, [5]) + element(ts, [r mod 3 mod 18446744073709551616]
          )) mod 18446744073709551616 <= 18446744073709551615
<S>  New H12:  (r + 7) mod 18446744073709551616 mod 9 mod 18446744073709551616 
          >= 0
<S>  New H13:  (r + 7) mod 18446744073709551616 mod 9 mod 18446744073709551616 
          <= 8
***  Proved C4:  (r + 1) mod 18446744073709551616 mod 3 mod 
          18446744073709551616 <= 2
***  Proved C6:  (r + 1) mod 18446744073709551616 mod 3 mod 
          18446744073709551616 <= 2147483647
***  PROVED VC.


@@@@@@@@@@  VC: procedure_inject_key_6.  @@@@@@@@@@
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H5 on reading formula in, to give:
     %%%  H5:  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 H8 has been replaced by "true".  (It is already present, as H6).
---  Hypothesis H9 has been replaced by "true".  (It is already present, as H7).
---  Hypothesis H21 has been replaced by "true".  (It is already present, as 
          H19).
---  Hypothesis H22 has been replaced by "true".  (It is already present, as 
          H20).
%%%  Simplified H30 on reading formula in, to give:
     %%%  H30:  true
---  Hypothesis H35 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H36 has been replaced by "true".  (It is already present, as 
          H32).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H33).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H34).
%%%  Simplified H39 on reading formula in, to give:
     %%%  H39:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 2]) + element(ts, [(r + 1) 
          mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= spark__unsigned__u64__first
%%%  Simplified H40 on reading formula in, to give:
     %%%  H40:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 2]) + element(ts, [(r + 1) 
          mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= spark__unsigned__u64__last
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as 
          H46).
---  Hypothesis H51 has been replaced by "true".  (It is already present, as 
          H47).
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H48).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H49).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 1]) + r) mod 
          interfaces__unsigned_64__modulus >= spark__unsigned__u64__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 1]) + r) mod 
          interfaces__unsigned_64__modulus <= spark__unsigned__u64__last
-S-  Applied substitution rule inject_key_rules(21).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H1:  r >= 0
<S>  New H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and 
          element(ks, [i___1]) <= spark__unsigned__u64__last)
<S>  New H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and 
          element(ts, [i___1]) <= spark__unsigned__u64__last)
<S>  New H5:  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 H10:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod ks_modulus mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H17:  loop__1__i >= 0
<S>  New H24:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 3]) + element(ts, [r mod 3 
          mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H39:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 2]) + element(ts, [(r + 1) 
          mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 1]) + r) mod 
          interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule inject_key_rules(22).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H2:  r <= 18446744073709551615
<S>  New H11:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod ks_modulus mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H18:  loop__1__i <= 18446744073709551615
<S>  New H25:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 3]) + element(ts, [r mod 3 
          mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H40:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 2]) + element(ts, [(r + 1) 
          mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H3:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and 
          element(ks, [i___1]) <= 18446744073709551615)
<S>  New H4:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and 
          element(ts, [i___1]) <= 18446744073709551615)
<S>  New H5:  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(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [wcnt - 1]) + r) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
-S-  Applied substitution rule inject_key_rules(32).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H19:  loop__1__i >= 0
<S>  New H31:  wcnt >= 3
<S>  New H46:  wcnt >= 2
<S>  New H5:  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:  wcnt >= 1
<S>  New C7:  wcnt >= 1
-S-  Applied substitution rule inject_key_rules(1).
     This was achieved by replacing all occurrences of wcnt by:
          8.
<S>  New H32:  5 <= spark__crypto__i8__last
<S>  New H33:  5 >= integer__base__first
<S>  New H34:  5 <= integer__base__last
<S>  New H47:  6 <= spark__crypto__i8__last
<S>  New H48:  6 >= integer__base__first
<S>  New H49:  6 <= integer__base__last
<S>  New H24:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H39:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [6]) + element(ts, [(r + 1) mod 
          interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H25:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H40:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [6]) + element(ts, [(r + 1) mod 
          interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H31:  true
<S>  New H46:  true
<S>  New C4:  7 <= spark__crypto__i8__last
<S>  New C5:  7 >= integer__base__first
<S>  New C6:  7 <= integer__base__last
<S>  New C8:  7 <= spark__crypto__i8__last
<S>  New C9:  7 >= integer__base__first
<S>  New C10:  7 <= integer__base__last
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [7]) + r) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod ks_modulus mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [7]) + r) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New C3:  true
<S>  New C7:  true
-S-  Applied substitution rule inject_key_rules(33).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H20:  loop__1__i <= 7
<S>  New H5:  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 H32:  true
<S>  New H47:  true
<S>  New C4:  true
<S>  New C8:  true
-S-  Applied substitution rule inject_key_rules(6).
     This was achieved by replacing all occurrences of integer__base__first by:
          - 2147483648.
<S>  New H33:  true
<S>  New H48:  true
<S>  New C5:  true
<S>  New C9:  true
-S-  Applied substitution rule inject_key_rules(7).
     This was achieved by replacing all occurrences of integer__base__last by:
          2147483647.
<S>  New H34:  true
<S>  New H49:  true
<S>  New C6:  true
<S>  New C10:  true
***  Proved C3:  true
***  Proved C7:  true
***  Proved C4:  true
***  Proved C8:  true
***  Proved C5:  true
***  Proved C9:  true
***  Proved C6:  true
***  Proved C10:  true
-S-  Applied substitution rule inject_key_rules(2).
     This was achieved by replacing all occurrences of ks_modulus by:
          9.
<S>  New H10:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H11:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H12:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus >= spark__crypto__i9__first
<S>  New H13:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus <= spark__crypto__i9__last
<S>  New H14:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus >= natural__first
<S>  New H15:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus <= natural__last
<S>  New H16:  true
<S>  New H24:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H25:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [5]) + element(ts, [r mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New H39:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [6]) + element(ts, [(r + 1) mod 
          interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H40:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [6]) + element(ts, [(r + 1) mod 
          interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [7]) + r) mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod interfaces__unsigned_64__modulus 
          mod 9 mod interfaces__unsigned_64__modulus])) mod 
          interfaces__unsigned_64__modulus), [7]) + r) mod 
          interfaces__unsigned_64__modulus <= 18446744073709551615
-S-  Applied substitution rule inject_key_rules(9).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H28:  r mod 3 mod interfaces__unsigned_64__modulus >= 0
<S>  New H43:  (r + 1) mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus >= 0
<S>  New H14:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus >= 0
-S-  Applied substitution rule inject_key_rules(10).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H29:  r mod 3 mod interfaces__unsigned_64__modulus <= 2147483647
<S>  New H44:  (r + 1) mod interfaces__unsigned_64__modulus mod 3 mod 
          interfaces__unsigned_64__modulus <= 2147483647
<S>  New H15:  (r + loop__1__i) mod interfaces__unsigned_64__modulus mod 9 mod 
          interfaces__unsigned_64__modulus <= 2147483647
-S-  Applied substitution rule inject_key_rules(19).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H26:  r mod 3 mod 18446744073709551616 >= spark__crypto__i3__first
<S>  New H27:  r mod 3 mod 18446744073709551616 <= spark__crypto__i3__last
<S>  New H41:  (r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616 
          >= spark__crypto__i3__first
<S>  New H42:  (r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616 
          <= spark__crypto__i3__last
<S>  New H10:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          18446744073709551616 mod 9 mod 18446744073709551616])) mod 
          18446744073709551616 >= 0
<S>  New H11:  (element(x, [loop__1__i]) + element(ks, [(r + loop__1__i) mod 
          18446744073709551616 mod 9 mod 18446744073709551616])) mod 
          18446744073709551616 <= 18446744073709551615
<S>  New H12:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= spark__crypto__i9__first
<S>  New H13:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= spark__crypto__i9__last
<S>  New H24:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [5]) + element(ts, 
          [r mod 3 mod 18446744073709551616])) mod 18446744073709551616 >= 0
<S>  New H25:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [5]) + element(ts, 
          [r mod 3 mod 18446744073709551616])) mod 18446744073709551616 <= 
          18446744073709551615
<S>  New H39:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [6]) + element(ts, 
          [(r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616])) 
          mod 18446744073709551616 >= 0
<S>  New H40:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [6]) + element(ts, 
          [(r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616])) 
          mod 18446744073709551616 <= 18446744073709551615
<S>  New H28:  r mod 3 mod 18446744073709551616 >= 0
<S>  New H43:  (r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616 
          >= 0
<S>  New H14:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= 0
<S>  New H29:  r mod 3 mod 18446744073709551616 <= 2147483647
<S>  New H44:  (r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616 
          <= 2147483647
<S>  New H15:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= 2147483647
<S>  New C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [7]) + r) mod 
          18446744073709551616 >= 0
<S>  New C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [7]) + r) mod 
          18446744073709551616 <= 18446744073709551615
-S-  Applied substitution rule inject_key_rules(27).
     This was achieved by replacing all occurrences of spark__crypto__i3__first 
          by:
          0.
<S>  New H4:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i3__last -> 0 <= element(ts, [i___1]) and element(ts, [
          i___1]) <= 18446744073709551615)
<S>  New H26:  r mod 3 mod 18446744073709551616 >= 0
<S>  New H41:  (r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616 
          >= 0
-S-  Applied substitution rule inject_key_rules(28).
     This was achieved by replacing all occurrences of spark__crypto__i3__last 
          by:
          2.
<S>  New H27:  r mod 3 mod 18446744073709551616 <= 2
<S>  New H42:  (r + 1) mod 18446744073709551616 mod 3 mod 18446744073709551616 
          <= 2
<S>  New H4:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 2 -> 0 <= 
          element(ts, [i___1]) and element(ts, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule inject_key_rules(37).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i9__last -> 0 <= element(ks, [i___1]) and element(ks, [
          i___1]) <= 18446744073709551615)
<S>  New H12:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 >= 0
-S-  Applied substitution rule inject_key_rules(38).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H13:  (r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616 <= 8
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 8 -> 0 <= 
          element(ks, [i___1]) and element(ks, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule inject_key_rules(47).
     This was achieved by replacing all occurrences of injection_range__first 
          by:
          0.
<S>  New H6:  loop__1__i >= 0
-S-  Applied substitution rule inject_key_rules(48).
     This was achieved by replacing all occurrences of injection_range__last by:
          7.
<S>  New H7:  loop__1__i <= 7
<S>  New H23:  loop__1__i = 7
***  Proved C1:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [7]) + r) mod 
          18446744073709551616 >= 0
***  Proved C2:  (element(update(x, [loop__1__i], (element(x, [loop__1__i]) + 
          element(ks, [(r + loop__1__i) mod 18446744073709551616 mod 9 mod 
          18446744073709551616])) mod 18446744073709551616), [7]) + r) mod 
          18446744073709551616 <= 18446744073709551615
***  PROVED VC.


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

