aboutsummaryrefslogtreecommitdiff
path: root/p521_64.c
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2019-02-01 18:50:00 -0500
committerGravatar Jason Gross <jasongross9@gmail.com>2019-02-02 18:22:15 -0500
commitce583d76bdb8f15148fc4222d8bdec096547682a (patch)
treeffb083673e6be283d7f67ad857bc2f30af892767 /p521_64.c
parent069e5cce23669707f11e59d9f68a31ad24990fe0 (diff)
Use Preconditions: Postconditions:, rather than /\ and ->
Diffstat (limited to 'p521_64.c')
-rw-r--r--p521_64.c64
1 files changed, 46 insertions, 18 deletions
diff --git a/p521_64.c b/p521_64.c
index 6eeab0b58..377c99de4 100644
--- a/p521_64.c
+++ b/p521_64.c
@@ -18,8 +18,10 @@ typedef unsigned __int128 fiat_p521_uint128;
/*
* The function fiat_p521_addcarryx_u58 is an addition with carry.
- * out1 = (arg1 + arg2 + arg3) mod 2^58
- * ∧ out2 = ⌊(arg1 + arg2 + arg3) / 2^58⌋
+ * Postconditions:
+ * out1 = (arg1 + arg2 + arg3) mod 2^58
+ * out2 = ⌊(arg1 + arg2 + arg3) / 2^58⌋
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [0x0 ~> 0x3ffffffffffffff]
@@ -38,8 +40,10 @@ static void fiat_p521_addcarryx_u58(uint64_t* out1, fiat_p521_uint1* out2, fiat_
/*
* The function fiat_p521_subborrowx_u58 is a subtraction with borrow.
- * out1 = (-arg1 + arg2 + -arg3) mod 2^58
- * ∧ out2 = -⌊(-arg1 + arg2 + -arg3) / 2^58⌋
+ * Postconditions:
+ * out1 = (-arg1 + arg2 + -arg3) mod 2^58
+ * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^58⌋
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [0x0 ~> 0x3ffffffffffffff]
@@ -58,8 +62,10 @@ static void fiat_p521_subborrowx_u58(uint64_t* out1, fiat_p521_uint1* out2, fiat
/*
* The function fiat_p521_addcarryx_u57 is an addition with carry.
- * out1 = (arg1 + arg2 + arg3) mod 2^57
- * ∧ out2 = ⌊(arg1 + arg2 + arg3) / 2^57⌋
+ * Postconditions:
+ * out1 = (arg1 + arg2 + arg3) mod 2^57
+ * out2 = ⌊(arg1 + arg2 + arg3) / 2^57⌋
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [0x0 ~> 0x1ffffffffffffff]
@@ -78,8 +84,10 @@ static void fiat_p521_addcarryx_u57(uint64_t* out1, fiat_p521_uint1* out2, fiat_
/*
* The function fiat_p521_subborrowx_u57 is a subtraction with borrow.
- * out1 = (-arg1 + arg2 + -arg3) mod 2^57
- * ∧ out2 = -⌊(-arg1 + arg2 + -arg3) / 2^57⌋
+ * Postconditions:
+ * out1 = (-arg1 + arg2 + -arg3) mod 2^57
+ * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^57⌋
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [0x0 ~> 0x1ffffffffffffff]
@@ -98,7 +106,9 @@ static void fiat_p521_subborrowx_u57(uint64_t* out1, fiat_p521_uint1* out2, fiat
/*
* The function fiat_p521_cmovznz_u64 is a single-word conditional move.
- * out1 = (if arg1 = 0 then arg2 else arg3)
+ * Postconditions:
+ * out1 = (if arg1 = 0 then arg2 else arg3)
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [0x0 ~> 0xffffffffffffffff]
@@ -115,7 +125,9 @@ static void fiat_p521_cmovznz_u64(uint64_t* out1, fiat_p521_uint1 arg1, uint64_t
/*
* The function fiat_p521_carry_mul multiplies two field elements and reduces the result.
- * eval out1 mod m = (eval arg1 * eval arg2) mod m
+ * Postconditions:
+ * eval out1 mod m = (eval arg1 * eval arg2) mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]]
* arg2: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]]
@@ -259,7 +271,9 @@ static void fiat_p521_carry_mul(uint64_t out1[9], const uint64_t arg1[9], const
/*
* The function fiat_p521_carry_square squares a field element and reduces the result.
- * eval out1 mod m = (eval arg1 * eval arg1) mod m
+ * Postconditions:
+ * eval out1 mod m = (eval arg1 * eval arg1) mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]]
* Output Bounds:
@@ -382,7 +396,9 @@ static void fiat_p521_carry_square(uint64_t out1[9], const uint64_t arg1[9]) {
/*
* The function fiat_p521_carry reduces a field element.
- * eval out1 mod m = eval arg1 mod m
+ * Postconditions:
+ * eval out1 mod m = eval arg1 mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]]
* Output Bounds:
@@ -422,7 +438,9 @@ static void fiat_p521_carry(uint64_t out1[9], const uint64_t arg1[9]) {
/*
* The function fiat_p521_add adds two field elements.
- * eval out1 mod m = (eval arg1 + eval arg2) mod m
+ * Postconditions:
+ * eval out1 mod m = (eval arg1 + eval arg2) mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]]
* arg2: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]]
@@ -452,7 +470,9 @@ static void fiat_p521_add(uint64_t out1[9], const uint64_t arg1[9], const uint64
/*
* The function fiat_p521_sub subtracts two field elements.
- * eval out1 mod m = (eval arg1 - eval arg2) mod m
+ * Postconditions:
+ * eval out1 mod m = (eval arg1 - eval arg2) mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]]
* arg2: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]]
@@ -482,7 +502,9 @@ static void fiat_p521_sub(uint64_t out1[9], const uint64_t arg1[9], const uint64
/*
* The function fiat_p521_opp negates a field element.
- * eval out1 mod m = -eval arg1 mod m
+ * Postconditions:
+ * eval out1 mod m = -eval arg1 mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]]
* Output Bounds:
@@ -511,7 +533,9 @@ static void fiat_p521_opp(uint64_t out1[9], const uint64_t arg1[9]) {
/*
* The function fiat_p521_selectznz is a multi-limb conditional select.
- * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)
+ * Postconditions:
+ * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
@@ -551,7 +575,9 @@ static void fiat_p521_selectznz(uint64_t out1[9], fiat_p521_uint1 arg1, const ui
/*
* The function fiat_p521_to_bytes serializes a field element to bytes in little-endian order.
- * out1 = map (λ x, ⌊(eval arg1 mod m) mod 2^(8 * (x + 1)) / 2^(8 * x)⌋) [0..65]
+ * Postconditions:
+ * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..65]
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]]
* Output Bounds:
@@ -824,7 +850,9 @@ static void fiat_p521_to_bytes(uint8_t out1[66], const uint64_t arg1[9]) {
/*
* The function fiat_p521_from_bytes deserializes a field element from bytes in little-endian order.
- * eval out1 mod m = bytes_eval arg1 mod m
+ * Postconditions:
+ * eval out1 mod m = bytes_eval arg1 mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]]
* Output Bounds: