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

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


          procedure Skein.Skein_512_Process_Block.Threefish_Block




For path(s) from start to run-time check associated with statement of line 584:

procedure_threefish_block_1.
H1:    true .
H2:    for_all(i___1: integer, ((i___1 >= spark__crypto__i9__first) and (
           i___1 <= spark__crypto__i9__last)) -> ((element(
           ks, [i___1]) >= spark__unsigned__u64__first) and (element(
           ks, [i___1]) <= spark__unsigned__u64__last))) .
H3:    for_all(i___1: integer, ((i___1 >= spark__crypto__i3__first) and (
           i___1 <= spark__crypto__i3__last)) -> ((element(
           ts, [i___1]) >= spark__unsigned__u64__first) and (element(
           ts, [i___1]) <= spark__unsigned__u64__last))) .
H4:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(
           x, [i___1]) >= spark__unsigned__u64__first) and (element(
           x, [i___1]) <= spark__unsigned__u64__last))) .
        ->
C1:    skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus >= 
           interfaces__unsigned_64__first .
C2:    skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus <= 
           interfaces__unsigned_64__last .
C3:    8 <> 0 .
C4:    1 >= interfaces__unsigned_64__first .
C5:    1 <= interfaces__unsigned_64__last .
 

For path(s) from start to run-time check associated with statement of line 584:

procedure_threefish_block_2.
H1:    true .
H2:    for_all(i___1: integer, ((i___1 >= spark__crypto__i9__first) and (
           i___1 <= spark__crypto__i9__last)) -> ((element(
           ks, [i___1]) >= spark__unsigned__u64__first) and (element(
           ks, [i___1]) <= spark__unsigned__u64__last))) .
H3:    for_all(i___1: integer, ((i___1 >= spark__crypto__i3__first) and (
           i___1 <= spark__crypto__i3__last)) -> ((element(
           ts, [i___1]) >= spark__unsigned__u64__first) and (element(
           ts, [i___1]) <= spark__unsigned__u64__last))) .
H4:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(
           x, [i___1]) >= spark__unsigned__u64__first) and (element(
           x, [i___1]) <= spark__unsigned__u64__last))) .
H5:    skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus >= 
           interfaces__unsigned_64__first .
H6:    skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus <= 
           interfaces__unsigned_64__last .
H7:    8 <> 0 .
H8:    1 >= interfaces__unsigned_64__first .
H9:    1 <= interfaces__unsigned_64__last .
        ->
C1:    (1 <= skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus) -> ((
           skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus >= 
           spark__unsigned__u64__first) and (
           skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus <= 
           spark__unsigned__u64__last)) .
C2:    (1 <= skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus) -> ((1 >= 
           spark__unsigned__u64__first) and (1 <= 
           spark__unsigned__u64__last)) .
 

For path(s) from start to default assertion of line 584:

procedure_threefish_block_3.
H1:    true .
H2:    for_all(i___1: integer, ((i___1 >= spark__crypto__i9__first) and (
           i___1 <= spark__crypto__i9__last)) -> ((element(
           ks, [i___1]) >= spark__unsigned__u64__first) and (element(
           ks, [i___1]) <= spark__unsigned__u64__last))) .
H3:    for_all(i___1: integer, ((i___1 >= spark__crypto__i3__first) and (
           i___1 <= spark__crypto__i3__last)) -> ((element(
           ts, [i___1]) >= spark__unsigned__u64__first) and (element(
           ts, [i___1]) <= spark__unsigned__u64__last))) .
H4:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(
           x, [i___1]) >= spark__unsigned__u64__first) and (element(
           x, [i___1]) <= spark__unsigned__u64__last))) .
H5:    skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus >= 
           interfaces__unsigned_64__first .
H6:    skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus <= 
           interfaces__unsigned_64__last .
H7:    8 <> 0 .
H8:    1 >= interfaces__unsigned_64__first .
H9:    1 <= interfaces__unsigned_64__last .
H10:   (1 <= skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus) -> ((
           skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus >= 
           spark__unsigned__u64__first) and (
           skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus <= 
           spark__unsigned__u64__last)) .
H11:   (1 <= skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus) -> ((1 >= 
           spark__unsigned__u64__first) and (1 <= 
           spark__unsigned__u64__last)) .
H12:   1 <= skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus .
        ->
C1:    for_all(i___1: integer, ((i___1 >= spark__crypto__i9__first) and (
           i___1 <= spark__crypto__i9__last)) -> ((element(
           ks, [i___1]) >= spark__unsigned__u64__first) and (element(
           ks, [i___1]) <= spark__unsigned__u64__last))) .
C2:    for_all(i___1: integer, ((i___1 >= spark__crypto__i3__first) and (
           i___1 <= spark__crypto__i3__last)) -> ((element(
           ts, [i___1]) >= spark__unsigned__u64__first) and (element(
           ts, [i___1]) <= spark__unsigned__u64__last))) .
C3:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(
           x, [i___1]) >= spark__unsigned__u64__first) and (element(
           x, [i___1]) <= spark__unsigned__u64__last))) .
C4:    1 >= spark__unsigned__u64__first .
C5:    1 <= spark__unsigned__u64__last .
C6:    1 >= 1 .
C7:    1 <= skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus .
 

For path(s) from default assertion of line 584 to default assertion of line 584:

procedure_threefish_block_4.
H1:    for_all(i___1: integer, ((i___1 >= spark__crypto__i9__first) and (
           i___1 <= spark__crypto__i9__last)) -> ((element(
           ks, [i___1]) >= spark__unsigned__u64__first) and (element(
           ks, [i___1]) <= spark__unsigned__u64__last))) .
H2:    for_all(i___1: integer, ((i___1 >= spark__crypto__i3__first) and (
           i___1 <= spark__crypto__i3__last)) -> ((element(
           ts, [i___1]) >= spark__unsigned__u64__first) and (element(
           ts, [i___1]) <= spark__unsigned__u64__last))) .
H3:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(
           x, [i___1]) >= spark__unsigned__u64__first) and (element(
           x, [i___1]) <= spark__unsigned__u64__last))) .
H4:    loop__1__r >= spark__unsigned__u64__first .
H5:    loop__1__r <= spark__unsigned__u64__last .
H6:    loop__1__r >= 1 .
H7:    loop__1__r <= skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus .
H8:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__1, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__1, [
           i___1]) <= spark__unsigned__u64__last))) .
H9:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__2, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__2, [
           i___1]) <= spark__unsigned__u64__last))) .
H10:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__3, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__3, [
           i___1]) <= spark__unsigned__u64__last))) .
H11:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__4, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__4, [
           i___1]) <= spark__unsigned__u64__last))) .
H12:   (loop__1__r * 2 mod interfaces__unsigned_64__modulus - 1) mod 
           interfaces__unsigned_64__modulus >= 
           spark__unsigned__u64__first .
H13:   (loop__1__r * 2 mod interfaces__unsigned_64__modulus - 1) mod 
           interfaces__unsigned_64__modulus <= 
           spark__unsigned__u64__last .
H14:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__5, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__5, [
           i___1]) <= spark__unsigned__u64__last))) .
H15:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__6, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__6, [
           i___1]) <= spark__unsigned__u64__last))) .
H16:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__7, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__7, [
           i___1]) <= spark__unsigned__u64__last))) .
H17:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__8, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__8, [
           i___1]) <= spark__unsigned__u64__last))) .
H18:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__9, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__9, [
           i___1]) <= spark__unsigned__u64__last))) .
H19:   loop__1__r * 2 mod interfaces__unsigned_64__modulus >= 
           spark__unsigned__u64__first .
H20:   loop__1__r * 2 mod interfaces__unsigned_64__modulus <= 
           spark__unsigned__u64__last .
H21:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__10, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__10, [
           i___1]) <= spark__unsigned__u64__last))) .
H22:   not (loop__1__r = skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus) .
        ->
C1:    for_all(i___1: integer, ((i___1 >= spark__crypto__i9__first) and (
           i___1 <= spark__crypto__i9__last)) -> ((element(
           ks, [i___1]) >= spark__unsigned__u64__first) and (element(
           ks, [i___1]) <= spark__unsigned__u64__last))) .
C2:    for_all(i___1: integer, ((i___1 >= spark__crypto__i3__first) and (
           i___1 <= spark__crypto__i3__last)) -> ((element(
           ts, [i___1]) >= spark__unsigned__u64__first) and (element(
           ts, [i___1]) <= spark__unsigned__u64__last))) .
C3:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__10, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__10, [
           i___1]) <= spark__unsigned__u64__last))) .
C4:    loop__1__r + 1 >= spark__unsigned__u64__first .
C5:    loop__1__r + 1 <= spark__unsigned__u64__last .
C6:    loop__1__r + 1 >= 1 .
C7:    loop__1__r + 1 <= skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus .
 

For path(s) from default assertion of line 584 to run-time check associated with statement of line 589:

procedure_threefish_block_5.
H1:    for_all(i___1: integer, ((i___1 >= spark__crypto__i9__first) and (
           i___1 <= spark__crypto__i9__last)) -> ((element(
           ks, [i___1]) >= spark__unsigned__u64__first) and (element(
           ks, [i___1]) <= spark__unsigned__u64__last))) .
H2:    for_all(i___1: integer, ((i___1 >= spark__crypto__i3__first) and (
           i___1 <= spark__crypto__i3__last)) -> ((element(
           ts, [i___1]) >= spark__unsigned__u64__first) and (element(
           ts, [i___1]) <= spark__unsigned__u64__last))) .
H3:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(
           x, [i___1]) >= spark__unsigned__u64__first) and (element(
           x, [i___1]) <= spark__unsigned__u64__last))) .
H4:    loop__1__r >= spark__unsigned__u64__first .
H5:    loop__1__r <= spark__unsigned__u64__last .
H6:    loop__1__r >= 1 .
H7:    loop__1__r <= skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus .
H8:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__1, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__1, [
           i___1]) <= spark__unsigned__u64__last))) .
H9:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__2, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__2, [
           i___1]) <= spark__unsigned__u64__last))) .
H10:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__3, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__3, [
           i___1]) <= spark__unsigned__u64__last))) .
H11:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__4, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__4, [
           i___1]) <= spark__unsigned__u64__last))) .
        ->
C1:    (loop__1__r * 2 mod interfaces__unsigned_64__modulus - 1) mod 
           interfaces__unsigned_64__modulus >= 
           spark__unsigned__u64__first .
C2:    (loop__1__r * 2 mod interfaces__unsigned_64__modulus - 1) mod 
           interfaces__unsigned_64__modulus <= 
           spark__unsigned__u64__last .
 

For path(s) from default assertion of line 584 to run-time check associated with statement of line 594:

procedure_threefish_block_6.
H1:    for_all(i___1: integer, ((i___1 >= spark__crypto__i9__first) and (
           i___1 <= spark__crypto__i9__last)) -> ((element(
           ks, [i___1]) >= spark__unsigned__u64__first) and (element(
           ks, [i___1]) <= spark__unsigned__u64__last))) .
H2:    for_all(i___1: integer, ((i___1 >= spark__crypto__i3__first) and (
           i___1 <= spark__crypto__i3__last)) -> ((element(
           ts, [i___1]) >= spark__unsigned__u64__first) and (element(
           ts, [i___1]) <= spark__unsigned__u64__last))) .
H3:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(
           x, [i___1]) >= spark__unsigned__u64__first) and (element(
           x, [i___1]) <= spark__unsigned__u64__last))) .
H4:    loop__1__r >= spark__unsigned__u64__first .
H5:    loop__1__r <= spark__unsigned__u64__last .
H6:    loop__1__r >= 1 .
H7:    loop__1__r <= skein_512_rounds_total div 8 mod 
           interfaces__unsigned_64__modulus .
H8:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__1, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__1, [
           i___1]) <= spark__unsigned__u64__last))) .
H9:    for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__2, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__2, [
           i___1]) <= spark__unsigned__u64__last))) .
H10:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__3, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__3, [
           i___1]) <= spark__unsigned__u64__last))) .
H11:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__4, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__4, [
           i___1]) <= spark__unsigned__u64__last))) .
H12:   (loop__1__r * 2 mod interfaces__unsigned_64__modulus - 1) mod 
           interfaces__unsigned_64__modulus >= 
           spark__unsigned__u64__first .
H13:   (loop__1__r * 2 mod interfaces__unsigned_64__modulus - 1) mod 
           interfaces__unsigned_64__modulus <= 
           spark__unsigned__u64__last .
H14:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__5, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__5, [
           i___1]) <= spark__unsigned__u64__last))) .
H15:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__6, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__6, [
           i___1]) <= spark__unsigned__u64__last))) .
H16:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__7, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__7, [
           i___1]) <= spark__unsigned__u64__last))) .
H17:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__8, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__8, [
           i___1]) <= spark__unsigned__u64__last))) .
H18:   for_all(i___1: integer, ((i___1 >= spark__crypto__i8__first) and (
           i___1 <= spark__crypto__i8__last)) -> ((element(x__9, [
           i___1]) >= spark__unsigned__u64__first) and (element(x__9, [
           i___1]) <= spark__unsigned__u64__last))) .
        ->
C1:    loop__1__r * 2 mod interfaces__unsigned_64__modulus >= 
           spark__unsigned__u64__first .
C2:    loop__1__r * 2 mod interfaces__unsigned_64__modulus <= 
           spark__unsigned__u64__last .
 

For path(s) from start to finish:

procedure_threefish_block_7.
*** true .          /* trivially true VC removed by Examiner */


For path(s) from default assertion of line 584 to finish:

procedure_threefish_block_8.
*** true .          /* trivially true VC removed by Examiner */


