aboutsummaryrefslogtreecommitdiff
path: root/p224_64.c
diff options
context:
space:
mode:
authorGravatar Jason Gross <jagro@google.com>2018-07-24 17:19:27 -0400
committerGravatar Jason Gross <jgross@mit.edu>2018-07-24 20:34:11 -0400
commit152094f4d9d83e4a5689536e0cd68d4f006517e1 (patch)
treee4d088973257662f29b3576b70649da3cf620e29 /p224_64.c
parentee334b4bff8450afbc580a410fe1225b51260e05 (diff)
Improve rewriter speed
Andres and I met today, and discovered that there's a source of non-linear complexity in the rewriter which is not type casts. In adding side-conditions to the rewrite rules (which are not discussed in the pattern-matching compilation paper), I represented them by allowing rewrite rules to fail. So, for example, # + x ~~> x (when # == 0) is represented as # + x ~~> if (# =? 0) then Some x else None In the case that a rewrite rule fails, we need to try all other rewrite rules that might still apply. However, doing this in the naive-CPS way leads to non-linear blowup, because wildcard rewrite rules get duplicated in the failure branches. (This is similar to the issue that `match x with "some string" => true | _ => false end%string` will generate a large number of "false" branches, and duplicate "false" across all of them, rather than having a single default case.) For example, if we had the rewrite rules # + # ~~> literal sum x + (-y) ~~> x - y (-x) + y ~~> y - x then the compiled code would look like fun x y => if x is a literal then if y is a literal then literal sum else if y is an opp then x - y else x + y else if y is an opp then x - y else if x is an opp then y - x else x + y where we actually want the code fun x y => if x is a literal then if y is a literal then return (literal sum); if y is an opp then return (x - y); if x is an opp then return (y - x); return (x + y) in the sequence+return monad. i.e., we want to not duplicate the "if y is an opp" code multiple times. I think the solution to this is to have the discrimination tree evaluator return an option, and to have the function that computes the discrimination tree not duplicate rewrite rules among different cases. Note that this leads to slightly inefficient matching sometimes: when two rules with the same structure are separated by a rule with a wildcard instead of structure, we will now try to match on the structure twice. It might be useful to be able to denote that some rewrite rules can be commuted. After | File Name | Before || Change | % Change ---------------------------------------------------------------------------------------------------------------------- 40m35.83s | Total | 30m00.99s || +10m34.84s | +35.24% ---------------------------------------------------------------------------------------------------------------------- 21m46.37s | Experiments/NewPipeline/SlowPrimeSynthesisExamples | 6m01.39s || +15m44.97s | +261.48% 6m37.40s | p384_32.c | 0m22.47s || +6m14.92s | +1668.58% 0m18.00s | Experiments/NewPipeline/Rewriter | 5m16.50s || -4m58.50s | -94.31% 0m30.49s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas | 1m54.20s || -1m23.71s | -73.30% 0m27.41s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas | 1m39.40s || -1m11.99s | -72.42% 0m47.78s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery | 1m54.50s || -1m06.71s | -58.27% 0m40.28s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery | 1m23.77s || -0m43.48s | -51.91% 0m15.21s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas | 0m55.86s || -0m40.64s | -72.77% 0m23.39s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas | 1m00.22s || -0m36.82s | -61.15% 0m21.85s | p256_32.c | 0m04.01s || +0m17.84s | +444.88% 0m20.97s | secp256k1_32.c | 0m03.26s || +0m17.71s | +543.25% 0m04.60s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas.ml | 0m20.33s || -0m15.72s | -77.37% 0m09.48s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery.ml | 0m23.28s || -0m13.80s | -59.27% 1m33.63s | Experiments/NewPipeline/Toplevel2 | 1m45.56s || -0m11.93s | -11.30% 0m08.29s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas.ml | 0m18.64s || -0m10.35s | -55.52% 0m05.93s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery.hs | 0m16.74s || -0m10.80s | -64.57% 0m32.41s | p521_64.c | 0m41.42s || -0m09.01s | -21.75% 0m04.93s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas.hs | 0m14.92s || -0m09.99s | -66.95% 0m04.40s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas.hs | 0m12.57s || -0m08.16s | -64.99% 0m08.52s | p224_32.c | 0m01.95s || +0m06.56s | +336.92% 0m13.99s | p384_64.c | 0m10.64s || +0m03.34s | +31.48% 4m07.13s | Experiments/NewPipeline/Toplevel1 | 4m05.83s || +0m01.29s | +0.52% 0m38.96s | p521_32.c | 0m40.09s || -0m01.13s | -2.81% 0m02.28s | p224_64.c | 0m01.66s || +0m00.61s | +37.34% 0m02.27s | curve25519_32.c | 0m01.98s || +0m00.29s | +14.64% 0m01.78s | p256_64.c | 0m01.65s || +0m00.13s | +7.87% 0m01.70s | secp256k1_64.c | 0m01.96s || -0m00.26s | -13.26% 0m01.65s | curve25519_64.c | 0m01.51s || +0m00.13s | +9.27% 0m01.37s | Experiments/NewPipeline/CLI | 0m01.26s || +0m00.11s | +8.73% 0m01.15s | Experiments/NewPipeline/StandaloneHaskellMain | 0m01.21s || -0m00.06s | -4.95% 0m01.14s | Experiments/NewPipeline/StandaloneOCamlMain | 0m01.16s || -0m00.02s | -1.72% 0m01.07s | Experiments/NewPipeline/CompilersTestCases | 0m01.05s || +0m00.02s | +1.90%
Diffstat (limited to 'p224_64.c')
-rw-r--r--p224_64.c3627
1 files changed, 2331 insertions, 1296 deletions
diff --git a/p224_64.c b/p224_64.c
index 6ef3781bb..74266c6d7 100644
--- a/p224_64.c
+++ b/p224_64.c
@@ -1,3 +1,4 @@
+check_args
/* Autogenerated */
/* curve description: p224 */
/* requested operations: (all) */
@@ -19,1311 +20,2345 @@ typedef signed __int128 fiat_p224_int128;
typedef unsigned __int128 fiat_p224_uint128;
-/*
- * Input Bounds:
- * arg1: [0x0 ~> 0x1]
- * arg2: [0x0 ~> 0xffffffffffffffff]
- * arg3: [0x0 ~> 0xffffffffffffffff]
- * Output Bounds:
- * out1: [0x0 ~> 0xffffffffffffffff]
- * out2: [0x0 ~> 0x1]
- */
-static void fiat_p224_addcarryx_u64(uint64_t* out1, fiat_p224_uint1* out2, fiat_p224_uint1 arg1, uint64_t arg2, uint64_t arg3) {
- fiat_p224_uint128 x1 = ((arg1 + (fiat_p224_uint128)arg2) + arg3);
- uint64_t x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
- fiat_p224_uint1 x3 = (fiat_p224_uint1)(x1 >> 64);
- *out1 = x2;
- *out2 = x3;
-}
-/*
- * Input Bounds:
- * arg1: [0x0 ~> 0x1]
- * arg2: [0x0 ~> 0xffffffffffffffff]
- * arg3: [0x0 ~> 0xffffffffffffffff]
- * Output Bounds:
- * out1: [0x0 ~> 0xffffffffffffffff]
- * out2: [0x0 ~> 0x1]
- */
-static void fiat_p224_subborrowx_u64(uint64_t* out1, fiat_p224_uint1* out2, fiat_p224_uint1 arg1, uint64_t arg2, uint64_t arg3) {
- fiat_p224_int128 x1 = ((arg2 - (fiat_p224_int128)arg1) - arg3);
- fiat_p224_int1 x2 = (fiat_p224_int1)((fiat_p224_uint128)x1 >> 64);
- uint64_t x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
- *out1 = x3;
- *out2 = (fiat_p224_uint1)(0x0 - x2);
-}
+In fiat_p224_mul:
+Stringification failed on the syntax tree:
+(λ x1 x2,
+ expr_let x3 := x1[1] (* : uint64_t *) in
+ expr_let x4 := x1[2] (* : uint64_t *) in
+ expr_let x5 := x1[3] (* : uint64_t *) in
+ expr_let x6 := x1[0] (* : uint64_t *) in
+ expr_let x7 := Z.mul_split(2^64, x6, x2[3]) (* : uint64_t, uint64_t *) in
+ expr_let x8 := Z.mul_split(2^64, x6, x2[2]) (* : uint64_t, uint64_t *) in
+ expr_let x9 := Z.mul_split(2^64, x6, x2[1]) (* : uint64_t, uint64_t *) in
+ expr_let x10 := Z.mul_split(2^64, x6, x2[0]) (* : uint64_t, uint64_t *) in
+ expr_let x11 := 2^192 * 0 (* : uint1_t *) in
+ expr_let x12 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x13 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x14 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x15 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x16 := 1 * 0 (* : uint1_t *) in
+ expr_let x17 := 1 * 0 (* : uint1_t *) in
+ expr_let x18 := 1 * 0 (* : uint1_t *) in
+ expr_let x19 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x20 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x21 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x22 := 1 * 0 (* : uint1_t *) in
+ expr_let x23 := 1 * 0 (* : uint1_t *) in
+ expr_let x24 := 1 * 0 (* : uint1_t *) in
+ expr_let x25 := 1 * 0 (* : uint1_t *) in
+ expr_let x26 := 1 * 0 (* : uint1_t *) in
+ expr_let x27 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x28 := 1 * 0 (* : uint1_t *) in
+ expr_let x29 := 1 * 0 (* : uint1_t *) in
+ expr_let x30 := 1 * 0 (* : uint1_t *) in
+ expr_let x31 := 1 * 0 (* : uint1_t *) in
+ expr_let x32 := 1 * 0 (* : uint1_t *) in
+ expr_let x33 := 1 * 0 (* : uint1_t *) in
+ expr_let x34 := 1 * 0 (* : uint1_t *) in
+ expr_let x35 := x7₂ * 1 (* : uint64_t *) in
+ expr_let x36 := x7₁ * 1 (* : uint64_t *) in
+ expr_let x37 := x8₂ * 1 (* : uint64_t *) in
+ expr_let x38 := x8₁ * 1 (* : uint64_t *) in
+ expr_let x39 := x9₂ * 1 (* : uint64_t *) in
+ expr_let x40 := x9₁ * 1 (* : uint64_t *) in
+ expr_let x41 := x10₂ * 1 (* : uint64_t *) in
+ expr_let x42 := x10₁ * 1 (* : uint64_t *) in
+ expr_let x43 := Z.add_with_get_carry(2^64, 0, 0, x42) (* : uint64_t, uint1_t *) in
+ expr_let x44 := Z.add_with_get_carry(2^64, x43₂, 0, x41) (* : uint64_t, uint1_t *) in
+ expr_let x45 := Z.add_with_get_carry(2^64, x44₂, 0, x39) (* : uint64_t, uint1_t *) in
+ expr_let x46 := Z.add_with_get_carry(2^64, x45₂, 0, x37) (* : uint64_t, uint1_t *) in
+ expr_let x47 := Z.add_with_get_carry(2^64, x46₂, x11, x35) (* : uint64_t, uint1_t *) in
+ expr_let x48 := Z.add_with_get_carry(2^64, 0, 0, x43₁) (* : uint64_t, uint1_t *) in
+ expr_let x49 := Z.add_with_get_carry(2^64, x48₂, 0, x44₁) (* : uint64_t, uint1_t *) in
+ expr_let x50 := Z.add_with_get_carry(2^64, x49₂, 0, x45₁) (* : uint64_t, uint1_t *) in
+ expr_let x51 := Z.add_with_get_carry(2^64, x50₂, 0, x46₁) (* : uint64_t, uint1_t *) in
+ expr_let x52 := Z.add_with_get_carry(2^64, x51₂, x12, x47₁) (* : uint64_t, uint1_t *) in
+ expr_let x53 := Z.add_with_get_carry(2^64, 0, 0, x48₁) (* : uint64_t, uint1_t *) in
+ expr_let x54 := Z.add_with_get_carry(2^64, x53₂, 0, x49₁) (* : uint64_t, uint1_t *) in
+ expr_let x55 := Z.add_with_get_carry(2^64, x54₂, 0, x50₁) (* : uint64_t, uint1_t *) in
+ expr_let x56 := Z.add_with_get_carry(2^64, x55₂, 0, x51₁) (* : uint64_t, uint1_t *) in
+ expr_let x57 := Z.add_with_get_carry(2^64, x56₂, x13, x52₁) (* : uint64_t, uint1_t *) in
+ expr_let x58 := Z.add_with_get_carry(2^64, 0, 0, x53₁) (* : uint64_t, uint1_t *) in
+ expr_let x59 := Z.add_with_get_carry(2^64, x58₂, 0, x54₁) (* : uint64_t, uint1_t *) in
+ expr_let x60 := Z.add_with_get_carry(2^64, x59₂, 0, x55₁) (* : uint64_t, uint1_t *) in
+ expr_let x61 := Z.add_with_get_carry(2^64, x60₂, 0, x56₁) (* : uint64_t, uint1_t *) in
+ expr_let x62 := Z.add_with_get_carry(2^64, x61₂, x14, x57₁) (* : uint64_t, uint1_t *) in
+ expr_let x63 := Z.add_with_get_carry(2^64, 0, 0, x58₁) (* : uint64_t, uint1_t *) in
+ expr_let x64 := Z.add_with_get_carry(2^64, x63₂, 0, x59₁) (* : uint64_t, uint1_t *) in
+ expr_let x65 := Z.add_with_get_carry(2^64, x64₂, 0, x60₁) (* : uint64_t, uint1_t *) in
+ expr_let x66 := Z.add_with_get_carry(2^64, x65₂, 0, x61₁) (* : uint64_t, uint1_t *) in
+ expr_let x67 := Z.add_with_get_carry(2^64, x66₂, x15, x62₁) (* : uint64_t, uint1_t *) in
+ expr_let x68 := Z.add_with_get_carry(2^64, 0, 0, x63₁) (* : uint64_t, uint1_t *) in
+ expr_let x69 := Z.add_with_get_carry(2^64, x68₂, 0, x64₁) (* : uint64_t, uint1_t *) in
+ expr_let x70 := Z.add_with_get_carry(2^64, x69₂, 0, x65₁) (* : uint64_t, uint1_t *) in
+ expr_let x71 := Z.add_with_get_carry(2^64, x70₂, 0, x66₁) (* : uint64_t, uint1_t *) in
+ expr_let x72 := Z.add_with_get_carry(2^64, x71₂, x16, x67₁) (* : uint64_t, uint1_t *) in
+ expr_let x73 := Z.add_with_get_carry(2^64, 0, 0, x68₁) (* : uint64_t, uint1_t *) in
+ expr_let x74 := Z.add_with_get_carry(2^64, x73₂, 0, x69₁) (* : uint64_t, uint1_t *) in
+ expr_let x75 := Z.add_with_get_carry(2^64, x74₂, 0, x70₁) (* : uint64_t, uint1_t *) in
+ expr_let x76 := Z.add_with_get_carry(2^64, x75₂, 0, x71₁) (* : uint64_t, uint1_t *) in
+ expr_let x77 := Z.add_with_get_carry(2^64, x76₂, x17, x72₁) (* : uint64_t, uint1_t *) in
+ expr_let x78 := Z.add_with_get_carry(2^64, 0, 0, x73₁) (* : uint64_t, uint1_t *) in
+ expr_let x79 := Z.add_with_get_carry(2^64, x78₂, 0, x74₁) (* : uint64_t, uint1_t *) in
+ expr_let x80 := Z.add_with_get_carry(2^64, x79₂, 0, x75₁) (* : uint64_t, uint1_t *) in
+ expr_let x81 := Z.add_with_get_carry(2^64, x80₂, 0, x76₁) (* : uint64_t, uint1_t *) in
+ expr_let x82 := Z.add_with_get_carry(2^64, x81₂, x19, x77₁) (* : uint64_t, uint1_t *) in
+ expr_let x83 := Z.add_with_get_carry(2^64, 0, 0, x78₁) (* : uint64_t, uint1_t *) in
+ expr_let x84 := Z.add_with_get_carry(2^64, x83₂, 0, x79₁) (* : uint64_t, uint1_t *) in
+ expr_let x85 := Z.add_with_get_carry(2^64, x84₂, 0, x80₁) (* : uint64_t, uint1_t *) in
+ expr_let x86 := Z.add_with_get_carry(2^64, x85₂, 0, x81₁) (* : uint64_t, uint1_t *) in
+ expr_let x87 := Z.add_with_get_carry(2^64, x86₂, x20, x82₁) (* : uint64_t, uint1_t *) in
+ expr_let x88 := Z.add_with_get_carry(2^64, 0, 0, x83₁) (* : uint64_t, uint1_t *) in
+ expr_let x89 := Z.add_with_get_carry(2^64, x88₂, 0, x84₁) (* : uint64_t, uint1_t *) in
+ expr_let x90 := Z.add_with_get_carry(2^64, x89₂, 0, x85₁) (* : uint64_t, uint1_t *) in
+ expr_let x91 := Z.add_with_get_carry(2^64, x90₂, x18, x86₁) (* : uint64_t, uint1_t *) in
+ expr_let x92 := Z.add_with_get_carry(2^64, x91₂, x21, x87₁) (* : uint64_t, uint1_t *) in
+ expr_let x93 := Z.add_with_get_carry(2^64, 0, 0, x88₁) (* : uint64_t, uint1_t *) in
+ expr_let x94 := Z.add_with_get_carry(2^64, x93₂, 0, x89₁) (* : uint64_t, uint1_t *) in
+ expr_let x95 := Z.add_with_get_carry(2^64, x94₂, 0, x90₁) (* : uint64_t, uint1_t *) in
+ expr_let x96 := Z.add_with_get_carry(2^64, x95₂, x24, x91₁) (* : uint64_t, uint1_t *) in
+ expr_let x97 := Z.add_with_get_carry(2^64, x96₂, x22, x92₁) (* : uint64_t, uint1_t *) in
+ expr_let x98 := Z.add_with_get_carry(2^64, 0, 0, x93₁) (* : uint64_t, uint1_t *) in
+ expr_let x99 := Z.add_with_get_carry(2^64, x98₂, 0, x94₁) (* : uint64_t, uint1_t *) in
+ expr_let x100 := Z.add_with_get_carry(2^64, x99₂, x26, x95₁) (* : uint64_t, uint1_t *) in
+ expr_let x101 := Z.add_with_get_carry(2^64, x100₂, x25, x96₁) (* : uint64_t, uint1_t *) in
+ expr_let x102 := Z.add_with_get_carry(2^64, x101₂, x23, x97₁) (* : uint64_t, uint1_t *) in
+ expr_let x103 := Z.add_with_get_carry(2^64, 0, 0, x98₁) (* : uint64_t, uint1_t *) in
+ expr_let x104 := Z.add_with_get_carry(2^64, x103₂, 0, x99₁) (* : uint64_t, uint1_t *) in
+ expr_let x105 := Z.add_with_get_carry(2^64, x104₂, x32, x100₁) (* : uint64_t, uint1_t *) in
+ expr_let x106 := Z.add_with_get_carry(2^64, x105₂, x30, x101₁) (* : uint64_t, uint1_t *) in
+ expr_let x107 := Z.add_with_get_carry(2^64, x106₂, x27, x102₁) (* : uint64_t, uint1_t *) in
+ expr_let x108 := Z.add_with_get_carry(2^64, 0, 0, x103₁) (* : uint64_t, uint1_t *) in
+ expr_let x109 := Z.add_with_get_carry(2^64, x108₂, x34, x104₁) (* : uint64_t, uint1_t *) in
+ expr_let x110 := Z.add_with_get_carry(2^64, x109₂, x33, x105₁) (* : uint64_t, uint1_t *) in
+ expr_let x111 := Z.add_with_get_carry(2^64, x110₂, x31, x106₁) (* : uint64_t, uint1_t *) in
+ expr_let x112 := Z.add_with_get_carry(2^64, x111₂, x28, x107₁) (* : uint64_t, uint1_t *) in
+ expr_let x113 := Z.add_with_get_carry(2^64, 0, 0, x108₁) (* : uint64_t, uint1_t *) in
+ expr_let x114 := Z.add_with_get_carry(2^64, x113₂, x40, x109₁) (* : uint64_t, uint1_t *) in
+ expr_let x115 := Z.add_with_get_carry(2^64, x114₂, x38, x110₁) (* : uint64_t, uint1_t *) in
+ expr_let x116 := Z.add_with_get_carry(2^64, x115₂, x36, x111₁) (* : uint64_t, uint1_t *) in
+ expr_let x117 := Z.add_with_get_carry(2^64, x116₂, x29, x112₁) (* : uint64_t, uint1_t *) in
+ expr_let x118 := Z.add_with_get_carry(2^64, 0, x113₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x119 := Z.add_with_get_carry(2^64, x118₂, x114₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x120 := Z.add_with_get_carry(2^64, x119₂, x115₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x121 := Z.add_with_get_carry(2^64, x120₂, x116₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x122 := Z.add_with_get_carry(2^64, x121₂, x117₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x123 := (Z.mul_split(2^64, x118₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x124 := Z.mul_split(2^64, x123, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x125 := Z.mul_split(2^64, x123, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x126 := Z.mul_split(2^64, x123, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x127 := Z.mul_split(2^64, x123, 1) (* : uint64_t, uint1_t *) in
+ expr_let x128 := x124₂ * 1 (* : uint64_t *) in
+ expr_let x129 := x124₁ * 1 (* : uint64_t *) in
+ expr_let x130 := x125₂ * 1 (* : uint64_t *) in
+ expr_let x131 := x125₁ * 1 (* : uint64_t *) in
+ expr_let x132 := x126₂ * 1 (* : uint64_t *) in
+ expr_let x133 := x126₁ * 1 (* : uint64_t *) in
+ expr_let x134 := x127₂ * 1 (* : uint1_t *) in
+ expr_let x135 := x127₁ * 1 (* : uint64_t *) in
+ expr_let x136 := Z.add_with_get_carry(2^64, 0, 0, x135) (* : uint64_t, uint1_t *) in
+ expr_let x137 := Z.add_with_get_carry(2^64, x136₂, 0, x134) (* : uint1_t, uint1_t *) in
+ expr_let x138 := Z.add_with_get_carry(2^64, x137₂, 0, x132) (* : uint64_t, uint1_t *) in
+ expr_let x139 := Z.add_with_get_carry(2^64, x138₂, 0, x130) (* : uint64_t, uint1_t *) in
+ expr_let x140 := Z.add_with_get_carry(2^64, x139₂, 0, x128) (* : uint64_t, uint1_t *) in
+ expr_let x141 := Z.add_with_get_carry(2^64, 0, 0, x136₁) (* : uint64_t, uint1_t *) in
+ expr_let x142 := Z.add_with_get_carry(2^64, x141₂, 0, x137₁) (* : uint1_t, uint1_t *) in
+ expr_let x143 := Z.add_with_get_carry(2^64, x142₂, 0, x138₁) (* : uint64_t, uint1_t *) in
+ expr_let x144 := Z.add_with_get_carry(2^64, x143₂, 0, x139₁) (* : uint64_t, uint1_t *) in
+ expr_let x145 := Z.add_with_get_carry(2^64, x144₂, 0, x140₁) (* : uint64_t, uint1_t *) in
+ expr_let x146 := Z.add_with_get_carry(2^64, 0, 0, x141₁) (* : uint64_t, uint1_t *) in
+ expr_let x147 := Z.add_with_get_carry(2^64, x146₂, 0, x142₁) (* : uint1_t, uint1_t *) in
+ expr_let x148 := Z.add_with_get_carry(2^64, x147₂, 0, x143₁) (* : uint64_t, uint1_t *) in
+ expr_let x149 := Z.add_with_get_carry(2^64, x148₂, 0, x144₁) (* : uint64_t, uint1_t *) in
+ expr_let x150 := Z.add_with_get_carry(2^64, x149₂, 0, x145₁) (* : uint64_t, uint1_t *) in
+ expr_let x151 := Z.add_with_get_carry(2^64, 0, 0, x146₁) (* : uint64_t, uint1_t *) in
+ expr_let x152 := Z.add_with_get_carry(2^64, x151₂, 0, x147₁) (* : uint1_t, uint1_t *) in
+ expr_let x153 := Z.add_with_get_carry(2^64, x152₂, 0, x148₁) (* : uint64_t, uint1_t *) in
+ expr_let x154 := Z.add_with_get_carry(2^64, x153₂, 0, x149₁) (* : uint64_t, uint1_t *) in
+ expr_let x155 := Z.add_with_get_carry(2^64, x154₂, 0, x150₁) (* : uint64_t, uint1_t *) in
+ expr_let x156 := Z.add_with_get_carry(2^64, 0, 0, x151₁) (* : uint64_t, uint1_t *) in
+ expr_let x157 := Z.add_with_get_carry(2^64, x156₂, 0, x152₁) (* : uint1_t, uint1_t *) in
+ expr_let x158 := Z.add_with_get_carry(2^64, x157₂, 0, x153₁) (* : uint64_t, uint1_t *) in
+ expr_let x159 := Z.add_with_get_carry(2^64, x158₂, 0, x154₁) (* : uint64_t, uint1_t *) in
+ expr_let x160 := Z.add_with_get_carry(2^64, x159₂, 0, x155₁) (* : uint64_t, uint1_t *) in
+ expr_let x161 := Z.add_with_get_carry(2^64, 0, 0, x156₁) (* : uint64_t, uint1_t *) in
+ expr_let x162 := Z.add_with_get_carry(2^64, x161₂, 0, x157₁) (* : uint1_t, uint1_t *) in
+ expr_let x163 := Z.add_with_get_carry(2^64, x162₂, 0, x158₁) (* : uint64_t, uint1_t *) in
+ expr_let x164 := Z.add_with_get_carry(2^64, x163₂, 0, x159₁) (* : uint64_t, uint1_t *) in
+ expr_let x165 := Z.add_with_get_carry(2^64, x164₂, 0, x160₁) (* : uint64_t, uint1_t *) in
+ expr_let x166 := Z.add_with_get_carry(2^64, 0, 0, x161₁) (* : uint64_t, uint1_t *) in
+ expr_let x167 := Z.add_with_get_carry(2^64, x166₂, 0, x162₁) (* : uint1_t, uint1_t *) in
+ expr_let x168 := Z.add_with_get_carry(2^64, x167₂, 0, x163₁) (* : uint64_t, uint1_t *) in
+ expr_let x169 := Z.add_with_get_carry(2^64, x168₂, 0, x164₁) (* : uint64_t, uint1_t *) in
+ expr_let x170 := Z.add_with_get_carry(2^64, x169₂, 0, x165₁) (* : uint64_t, uint1_t *) in
+ expr_let x171 := Z.add_with_get_carry(2^64, 0, 0, x166₁) (* : uint64_t, uint1_t *) in
+ expr_let x172 := Z.add_with_get_carry(2^64, x171₂, 0, x167₁) (* : uint1_t, uint1_t *) in
+ expr_let x173 := Z.add_with_get_carry(2^64, x172₂, 0, x168₁) (* : uint64_t, uint1_t *) in
+ expr_let x174 := Z.add_with_get_carry(2^64, x173₂, 0, x169₁) (* : uint64_t, uint1_t *) in
+ expr_let x175 := Z.add_with_get_carry(2^64, x174₂, 0, x170₁) (* : uint64_t, uint1_t *) in
+ expr_let x176 := Z.add_with_get_carry(2^64, 0, 0, x171₁) (* : uint64_t, uint1_t *) in
+ expr_let x177 := Z.add_with_get_carry(2^64, x176₂, 0, x172₁) (* : uint1_t, uint1_t *) in
+ expr_let x178 := Z.add_with_get_carry(2^64, x177₂, 0, x173₁) (* : uint64_t, uint1_t *) in
+ expr_let x179 := Z.add_with_get_carry(2^64, x178₂, 0, x174₁) (* : uint64_t, uint1_t *) in
+ expr_let x180 := Z.add_with_get_carry(2^64, x179₂, 0, x175₁) (* : uint64_t, uint1_t *) in
+ expr_let x181 := Z.add_with_get_carry(2^64, 0, 0, x176₁) (* : uint64_t, uint1_t *) in
+ expr_let x182 := Z.add_with_get_carry(2^64, x181₂, 0, x177₁) (* : uint1_t, uint1_t *) in
+ expr_let x183 := Z.add_with_get_carry(2^64, x182₂, 0, x178₁) (* : uint64_t, uint1_t *) in
+ expr_let x184 := Z.add_with_get_carry(2^64, x183₂, 0, x179₁) (* : uint64_t, uint1_t *) in
+ expr_let x185 := Z.add_with_get_carry(2^64, x184₂, 0, x180₁) (* : uint64_t, uint1_t *) in
+ expr_let x186 := Z.add_with_get_carry(2^64, 0, 0, x181₁) (* : uint64_t, uint1_t *) in
+ expr_let x187 := Z.add_with_get_carry(2^64, x186₂, 0, x182₁) (* : uint1_t, uint1_t *) in
+ expr_let x188 := Z.add_with_get_carry(2^64, x187₂, 0, x183₁) (* : uint64_t, uint1_t *) in
+ expr_let x189 := Z.add_with_get_carry(2^64, x188₂, 0, x184₁) (* : uint64_t, uint1_t *) in
+ expr_let x190 := Z.add_with_get_carry(2^64, x189₂, 0, x185₁) (* : uint64_t, uint1_t *) in
+ expr_let x191 := Z.add_with_get_carry(2^64, 0, 0, x186₁) (* : uint64_t, uint1_t *) in
+ expr_let x192 := Z.add_with_get_carry(2^64, x191₂, 0, x187₁) (* : uint1_t, uint1_t *) in
+ expr_let x193 := Z.add_with_get_carry(2^64, x192₂, 0, x188₁) (* : uint64_t, uint1_t *) in
+ expr_let x194 := Z.add_with_get_carry(2^64, x193₂, 0, x189₁) (* : uint64_t, uint1_t *) in
+ expr_let x195 := Z.add_with_get_carry(2^64, x194₂, 0, x190₁) (* : uint64_t, uint1_t *) in
+ expr_let x196 := Z.add_with_get_carry(2^64, 0, 0, x191₁) (* : uint64_t, uint1_t *) in
+ expr_let x197 := Z.add_with_get_carry(2^64, x196₂, 0, x192₁) (* : uint1_t, uint1_t *) in
+ expr_let x198 := Z.add_with_get_carry(2^64, x197₂, 0, x193₁) (* : uint64_t, uint1_t *) in
+ expr_let x199 := Z.add_with_get_carry(2^64, x198₂, 0, x194₁) (* : uint64_t, uint1_t *) in
+ expr_let x200 := Z.add_with_get_carry(2^64, x199₂, 0, x195₁) (* : uint64_t, uint1_t *) in
+ expr_let x201 := Z.add_with_get_carry(2^64, 0, 0, x196₁) (* : uint64_t, uint1_t *) in
+ expr_let x202 := Z.add_with_get_carry(2^64, x201₂, 0, x197₁) (* : uint1_t, uint1_t *) in
+ expr_let x203 := Z.add_with_get_carry(2^64, x202₂, 0, x198₁) (* : uint64_t, uint1_t *) in
+ expr_let x204 := Z.add_with_get_carry(2^64, x203₂, 0, x199₁) (* : uint64_t, uint1_t *) in
+ expr_let x205 := Z.add_with_get_carry(2^64, x204₂, 0, x200₁) (* : uint64_t, uint1_t *) in
+ expr_let x206 := Z.add_with_get_carry(2^64, 0, 0, x201₁) (* : uint64_t, uint1_t *) in
+ expr_let x207 := Z.add_with_get_carry(2^64, x206₂, x133, x202₁) (* : uint64_t, uint1_t *) in
+ expr_let x208 := Z.add_with_get_carry(2^64, x207₂, x131, x203₁) (* : uint64_t, uint1_t *) in
+ expr_let x209 := Z.add_with_get_carry(2^64, x208₂, x129, x204₁) (* : uint64_t, uint1_t *) in
+ expr_let x210 := Z.add_with_get_carry(2^64, x209₂, 0, x205₁) (* : uint64_t, uint1_t *) in
+ expr_let x211 := Z.add_with_get_carry(2^64, 0, x206₁, x118₁) (* : uint64_t, uint1_t *) in
+ expr_let x212 := Z.add_with_get_carry(2^64, x211₂, x207₁, x119₁) (* : uint64_t, uint1_t *) in
+ expr_let x213 := Z.add_with_get_carry(2^64, x212₂, x208₁, x120₁) (* : uint64_t, uint1_t *) in
+ expr_let x214 := Z.add_with_get_carry(2^64, x213₂, x209₁, x121₁) (* : uint64_t, uint1_t *) in
+ expr_let x215 := Z.add_with_get_carry(2^64, x214₂, x210₁, x122₁) (* : uint64_t, uint1_t *) in
+ expr_let x216 := Z.add_with_get_carry(2^64, x215₂, 0, x122₂) (* : uint1_t, uint1_t *) in
+ expr_let x217 := Z.mul_split(2^64, x3, x2[3]) (* : uint64_t, uint64_t *) in
+ expr_let x218 := Z.mul_split(2^64, x3, x2[2]) (* : uint64_t, uint64_t *) in
+ expr_let x219 := Z.mul_split(2^64, x3, x2[1]) (* : uint64_t, uint64_t *) in
+ expr_let x220 := Z.mul_split(2^64, x3, x2[0]) (* : uint64_t, uint64_t *) in
+ expr_let x221 := 2^192 * 0 (* : uint1_t *) in
+ expr_let x222 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x223 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x224 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x225 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x226 := 1 * 0 (* : uint1_t *) in
+ expr_let x227 := 1 * 0 (* : uint1_t *) in
+ expr_let x228 := 1 * 0 (* : uint1_t *) in
+ expr_let x229 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x230 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x231 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x232 := 1 * 0 (* : uint1_t *) in
+ expr_let x233 := 1 * 0 (* : uint1_t *) in
+ expr_let x234 := 1 * 0 (* : uint1_t *) in
+ expr_let x235 := 1 * 0 (* : uint1_t *) in
+ expr_let x236 := 1 * 0 (* : uint1_t *) in
+ expr_let x237 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x238 := 1 * 0 (* : uint1_t *) in
+ expr_let x239 := 1 * 0 (* : uint1_t *) in
+ expr_let x240 := 1 * 0 (* : uint1_t *) in
+ expr_let x241 := 1 * 0 (* : uint1_t *) in
+ expr_let x242 := 1 * 0 (* : uint1_t *) in
+ expr_let x243 := 1 * 0 (* : uint1_t *) in
+ expr_let x244 := 1 * 0 (* : uint1_t *) in
+ expr_let x245 := x217₂ * 1 (* : uint64_t *) in
+ expr_let x246 := x217₁ * 1 (* : uint64_t *) in
+ expr_let x247 := x218₂ * 1 (* : uint64_t *) in
+ expr_let x248 := x218₁ * 1 (* : uint64_t *) in
+ expr_let x249 := x219₂ * 1 (* : uint64_t *) in
+ expr_let x250 := x219₁ * 1 (* : uint64_t *) in
+ expr_let x251 := x220₂ * 1 (* : uint64_t *) in
+ expr_let x252 := x220₁ * 1 (* : uint64_t *) in
+ expr_let x253 := Z.add_with_get_carry(2^64, 0, 0, x252) (* : uint64_t, uint1_t *) in
+ expr_let x254 := Z.add_with_get_carry(2^64, x253₂, 0, x251) (* : uint64_t, uint1_t *) in
+ expr_let x255 := Z.add_with_get_carry(2^64, x254₂, 0, x249) (* : uint64_t, uint1_t *) in
+ expr_let x256 := Z.add_with_get_carry(2^64, x255₂, 0, x247) (* : uint64_t, uint1_t *) in
+ expr_let x257 := Z.add_with_get_carry(2^64, x256₂, x221, x245) (* : uint64_t, uint1_t *) in
+ expr_let x258 := Z.add_with_get_carry(2^64, 0, 0, x253₁) (* : uint64_t, uint1_t *) in
+ expr_let x259 := Z.add_with_get_carry(2^64, x258₂, 0, x254₁) (* : uint64_t, uint1_t *) in
+ expr_let x260 := Z.add_with_get_carry(2^64, x259₂, 0, x255₁) (* : uint64_t, uint1_t *) in
+ expr_let x261 := Z.add_with_get_carry(2^64, x260₂, 0, x256₁) (* : uint64_t, uint1_t *) in
+ expr_let x262 := Z.add_with_get_carry(2^64, x261₂, x222, x257₁) (* : uint64_t, uint1_t *) in
+ expr_let x263 := Z.add_with_get_carry(2^64, 0, 0, x258₁) (* : uint64_t, uint1_t *) in
+ expr_let x264 := Z.add_with_get_carry(2^64, x263₂, 0, x259₁) (* : uint64_t, uint1_t *) in
+ expr_let x265 := Z.add_with_get_carry(2^64, x264₂, 0, x260₁) (* : uint64_t, uint1_t *) in
+ expr_let x266 := Z.add_with_get_carry(2^64, x265₂, 0, x261₁) (* : uint64_t, uint1_t *) in
+ expr_let x267 := Z.add_with_get_carry(2^64, x266₂, x223, x262₁) (* : uint64_t, uint1_t *) in
+ expr_let x268 := Z.add_with_get_carry(2^64, 0, 0, x263₁) (* : uint64_t, uint1_t *) in
+ expr_let x269 := Z.add_with_get_carry(2^64, x268₂, 0, x264₁) (* : uint64_t, uint1_t *) in
+ expr_let x270 := Z.add_with_get_carry(2^64, x269₂, 0, x265₁) (* : uint64_t, uint1_t *) in
+ expr_let x271 := Z.add_with_get_carry(2^64, x270₂, 0, x266₁) (* : uint64_t, uint1_t *) in
+ expr_let x272 := Z.add_with_get_carry(2^64, x271₂, x224, x267₁) (* : uint64_t, uint1_t *) in
+ expr_let x273 := Z.add_with_get_carry(2^64, 0, 0, x268₁) (* : uint64_t, uint1_t *) in
+ expr_let x274 := Z.add_with_get_carry(2^64, x273₂, 0, x269₁) (* : uint64_t, uint1_t *) in
+ expr_let x275 := Z.add_with_get_carry(2^64, x274₂, 0, x270₁) (* : uint64_t, uint1_t *) in
+ expr_let x276 := Z.add_with_get_carry(2^64, x275₂, 0, x271₁) (* : uint64_t, uint1_t *) in
+ expr_let x277 := Z.add_with_get_carry(2^64, x276₂, x225, x272₁) (* : uint64_t, uint1_t *) in
+ expr_let x278 := Z.add_with_get_carry(2^64, 0, 0, x273₁) (* : uint64_t, uint1_t *) in
+ expr_let x279 := Z.add_with_get_carry(2^64, x278₂, 0, x274₁) (* : uint64_t, uint1_t *) in
+ expr_let x280 := Z.add_with_get_carry(2^64, x279₂, 0, x275₁) (* : uint64_t, uint1_t *) in
+ expr_let x281 := Z.add_with_get_carry(2^64, x280₂, 0, x276₁) (* : uint64_t, uint1_t *) in
+ expr_let x282 := Z.add_with_get_carry(2^64, x281₂, x226, x277₁) (* : uint64_t, uint1_t *) in
+ expr_let x283 := Z.add_with_get_carry(2^64, 0, 0, x278₁) (* : uint64_t, uint1_t *) in
+ expr_let x284 := Z.add_with_get_carry(2^64, x283₂, 0, x279₁) (* : uint64_t, uint1_t *) in
+ expr_let x285 := Z.add_with_get_carry(2^64, x284₂, 0, x280₁) (* : uint64_t, uint1_t *) in
+ expr_let x286 := Z.add_with_get_carry(2^64, x285₂, 0, x281₁) (* : uint64_t, uint1_t *) in
+ expr_let x287 := Z.add_with_get_carry(2^64, x286₂, x227, x282₁) (* : uint64_t, uint1_t *) in
+ expr_let x288 := Z.add_with_get_carry(2^64, 0, 0, x283₁) (* : uint64_t, uint1_t *) in
+ expr_let x289 := Z.add_with_get_carry(2^64, x288₂, 0, x284₁) (* : uint64_t, uint1_t *) in
+ expr_let x290 := Z.add_with_get_carry(2^64, x289₂, 0, x285₁) (* : uint64_t, uint1_t *) in
+ expr_let x291 := Z.add_with_get_carry(2^64, x290₂, 0, x286₁) (* : uint64_t, uint1_t *) in
+ expr_let x292 := Z.add_with_get_carry(2^64, x291₂, x229, x287₁) (* : uint64_t, uint1_t *) in
+ expr_let x293 := Z.add_with_get_carry(2^64, 0, 0, x288₁) (* : uint64_t, uint1_t *) in
+ expr_let x294 := Z.add_with_get_carry(2^64, x293₂, 0, x289₁) (* : uint64_t, uint1_t *) in
+ expr_let x295 := Z.add_with_get_carry(2^64, x294₂, 0, x290₁) (* : uint64_t, uint1_t *) in
+ expr_let x296 := Z.add_with_get_carry(2^64, x295₂, 0, x291₁) (* : uint64_t, uint1_t *) in
+ expr_let x297 := Z.add_with_get_carry(2^64, x296₂, x230, x292₁) (* : uint64_t, uint1_t *) in
+ expr_let x298 := Z.add_with_get_carry(2^64, 0, 0, x293₁) (* : uint64_t, uint1_t *) in
+ expr_let x299 := Z.add_with_get_carry(2^64, x298₂, 0, x294₁) (* : uint64_t, uint1_t *) in
+ expr_let x300 := Z.add_with_get_carry(2^64, x299₂, 0, x295₁) (* : uint64_t, uint1_t *) in
+ expr_let x301 := Z.add_with_get_carry(2^64, x300₂, x228, x296₁) (* : uint64_t, uint1_t *) in
+ expr_let x302 := Z.add_with_get_carry(2^64, x301₂, x231, x297₁) (* : uint64_t, uint1_t *) in
+ expr_let x303 := Z.add_with_get_carry(2^64, 0, 0, x298₁) (* : uint64_t, uint1_t *) in
+ expr_let x304 := Z.add_with_get_carry(2^64, x303₂, 0, x299₁) (* : uint64_t, uint1_t *) in
+ expr_let x305 := Z.add_with_get_carry(2^64, x304₂, 0, x300₁) (* : uint64_t, uint1_t *) in
+ expr_let x306 := Z.add_with_get_carry(2^64, x305₂, x234, x301₁) (* : uint64_t, uint1_t *) in
+ expr_let x307 := Z.add_with_get_carry(2^64, x306₂, x232, x302₁) (* : uint64_t, uint1_t *) in
+ expr_let x308 := Z.add_with_get_carry(2^64, 0, 0, x303₁) (* : uint64_t, uint1_t *) in
+ expr_let x309 := Z.add_with_get_carry(2^64, x308₂, 0, x304₁) (* : uint64_t, uint1_t *) in
+ expr_let x310 := Z.add_with_get_carry(2^64, x309₂, x236, x305₁) (* : uint64_t, uint1_t *) in
+ expr_let x311 := Z.add_with_get_carry(2^64, x310₂, x235, x306₁) (* : uint64_t, uint1_t *) in
+ expr_let x312 := Z.add_with_get_carry(2^64, x311₂, x233, x307₁) (* : uint64_t, uint1_t *) in
+ expr_let x313 := Z.add_with_get_carry(2^64, 0, 0, x308₁) (* : uint64_t, uint1_t *) in
+ expr_let x314 := Z.add_with_get_carry(2^64, x313₂, 0, x309₁) (* : uint64_t, uint1_t *) in
+ expr_let x315 := Z.add_with_get_carry(2^64, x314₂, x242, x310₁) (* : uint64_t, uint1_t *) in
+ expr_let x316 := Z.add_with_get_carry(2^64, x315₂, x240, x311₁) (* : uint64_t, uint1_t *) in
+ expr_let x317 := Z.add_with_get_carry(2^64, x316₂, x237, x312₁) (* : uint64_t, uint1_t *) in
+ expr_let x318 := Z.add_with_get_carry(2^64, 0, 0, x313₁) (* : uint64_t, uint1_t *) in
+ expr_let x319 := Z.add_with_get_carry(2^64, x318₂, x244, x314₁) (* : uint64_t, uint1_t *) in
+ expr_let x320 := Z.add_with_get_carry(2^64, x319₂, x243, x315₁) (* : uint64_t, uint1_t *) in
+ expr_let x321 := Z.add_with_get_carry(2^64, x320₂, x241, x316₁) (* : uint64_t, uint1_t *) in
+ expr_let x322 := Z.add_with_get_carry(2^64, x321₂, x238, x317₁) (* : uint64_t, uint1_t *) in
+ expr_let x323 := Z.add_with_get_carry(2^64, 0, 0, x318₁) (* : uint64_t, uint1_t *) in
+ expr_let x324 := Z.add_with_get_carry(2^64, x323₂, x250, x319₁) (* : uint64_t, uint1_t *) in
+ expr_let x325 := Z.add_with_get_carry(2^64, x324₂, x248, x320₁) (* : uint64_t, uint1_t *) in
+ expr_let x326 := Z.add_with_get_carry(2^64, x325₂, x246, x321₁) (* : uint64_t, uint1_t *) in
+ expr_let x327 := Z.add_with_get_carry(2^64, x326₂, x239, x322₁) (* : uint64_t, uint1_t *) in
+ expr_let x328 := Z.add_with_get_carry(2^64, 0, x323₁, x212₁) (* : uint64_t, uint1_t *) in
+ expr_let x329 := Z.add_with_get_carry(2^64, x328₂, x324₁, x213₁) (* : uint64_t, uint1_t *) in
+ expr_let x330 := Z.add_with_get_carry(2^64, x329₂, x325₁, x214₁) (* : uint64_t, uint1_t *) in
+ expr_let x331 := Z.add_with_get_carry(2^64, x330₂, x326₁, x215₁) (* : uint64_t, uint1_t *) in
+ expr_let x332 := Z.add_with_get_carry(2^64, x331₂, x327₁, x216₁) (* : uint64_t, uint1_t *) in
+ expr_let x333 := (Z.mul_split(2^64, x328₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x334 := Z.mul_split(2^64, x333, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x335 := Z.mul_split(2^64, x333, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x336 := Z.mul_split(2^64, x333, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x337 := Z.mul_split(2^64, x333, 1) (* : uint64_t, uint1_t *) in
+ expr_let x338 := x334₂ * 1 (* : uint64_t *) in
+ expr_let x339 := x334₁ * 1 (* : uint64_t *) in
+ expr_let x340 := x335₂ * 1 (* : uint64_t *) in
+ expr_let x341 := x335₁ * 1 (* : uint64_t *) in
+ expr_let x342 := x336₂ * 1 (* : uint64_t *) in
+ expr_let x343 := x336₁ * 1 (* : uint64_t *) in
+ expr_let x344 := x337₂ * 1 (* : uint1_t *) in
+ expr_let x345 := x337₁ * 1 (* : uint64_t *) in
+ expr_let x346 := Z.add_with_get_carry(2^64, 0, 0, x345) (* : uint64_t, uint1_t *) in
+ expr_let x347 := Z.add_with_get_carry(2^64, x346₂, 0, x344) (* : uint1_t, uint1_t *) in
+ expr_let x348 := Z.add_with_get_carry(2^64, x347₂, 0, x342) (* : uint64_t, uint1_t *) in
+ expr_let x349 := Z.add_with_get_carry(2^64, x348₂, 0, x340) (* : uint64_t, uint1_t *) in
+ expr_let x350 := Z.add_with_get_carry(2^64, x349₂, 0, x338) (* : uint64_t, uint1_t *) in
+ expr_let x351 := Z.add_with_get_carry(2^64, 0, 0, x346₁) (* : uint64_t, uint1_t *) in
+ expr_let x352 := Z.add_with_get_carry(2^64, x351₂, 0, x347₁) (* : uint1_t, uint1_t *) in
+ expr_let x353 := Z.add_with_get_carry(2^64, x352₂, 0, x348₁) (* : uint64_t, uint1_t *) in
+ expr_let x354 := Z.add_with_get_carry(2^64, x353₂, 0, x349₁) (* : uint64_t, uint1_t *) in
+ expr_let x355 := Z.add_with_get_carry(2^64, x354₂, 0, x350₁) (* : uint64_t, uint1_t *) in
+ expr_let x356 := Z.add_with_get_carry(2^64, 0, 0, x351₁) (* : uint64_t, uint1_t *) in
+ expr_let x357 := Z.add_with_get_carry(2^64, x356₂, 0, x352₁) (* : uint1_t, uint1_t *) in
+ expr_let x358 := Z.add_with_get_carry(2^64, x357₂, 0, x353₁) (* : uint64_t, uint1_t *) in
+ expr_let x359 := Z.add_with_get_carry(2^64, x358₂, 0, x354₁) (* : uint64_t, uint1_t *) in
+ expr_let x360 := Z.add_with_get_carry(2^64, x359₂, 0, x355₁) (* : uint64_t, uint1_t *) in
+ expr_let x361 := Z.add_with_get_carry(2^64, 0, 0, x356₁) (* : uint64_t, uint1_t *) in
+ expr_let x362 := Z.add_with_get_carry(2^64, x361₂, 0, x357₁) (* : uint1_t, uint1_t *) in
+ expr_let x363 := Z.add_with_get_carry(2^64, x362₂, 0, x358₁) (* : uint64_t, uint1_t *) in
+ expr_let x364 := Z.add_with_get_carry(2^64, x363₂, 0, x359₁) (* : uint64_t, uint1_t *) in
+ expr_let x365 := Z.add_with_get_carry(2^64, x364₂, 0, x360₁) (* : uint64_t, uint1_t *) in
+ expr_let x366 := Z.add_with_get_carry(2^64, 0, 0, x361₁) (* : uint64_t, uint1_t *) in
+ expr_let x367 := Z.add_with_get_carry(2^64, x366₂, 0, x362₁) (* : uint1_t, uint1_t *) in
+ expr_let x368 := Z.add_with_get_carry(2^64, x367₂, 0, x363₁) (* : uint64_t, uint1_t *) in
+ expr_let x369 := Z.add_with_get_carry(2^64, x368₂, 0, x364₁) (* : uint64_t, uint1_t *) in
+ expr_let x370 := Z.add_with_get_carry(2^64, x369₂, 0, x365₁) (* : uint64_t, uint1_t *) in
+ expr_let x371 := Z.add_with_get_carry(2^64, 0, 0, x366₁) (* : uint64_t, uint1_t *) in
+ expr_let x372 := Z.add_with_get_carry(2^64, x371₂, 0, x367₁) (* : uint1_t, uint1_t *) in
+ expr_let x373 := Z.add_with_get_carry(2^64, x372₂, 0, x368₁) (* : uint64_t, uint1_t *) in
+ expr_let x374 := Z.add_with_get_carry(2^64, x373₂, 0, x369₁) (* : uint64_t, uint1_t *) in
+ expr_let x375 := Z.add_with_get_carry(2^64, x374₂, 0, x370₁) (* : uint64_t, uint1_t *) in
+ expr_let x376 := Z.add_with_get_carry(2^64, 0, 0, x371₁) (* : uint64_t, uint1_t *) in
+ expr_let x377 := Z.add_with_get_carry(2^64, x376₂, 0, x372₁) (* : uint1_t, uint1_t *) in
+ expr_let x378 := Z.add_with_get_carry(2^64, x377₂, 0, x373₁) (* : uint64_t, uint1_t *) in
+ expr_let x379 := Z.add_with_get_carry(2^64, x378₂, 0, x374₁) (* : uint64_t, uint1_t *) in
+ expr_let x380 := Z.add_with_get_carry(2^64, x379₂, 0, x375₁) (* : uint64_t, uint1_t *) in
+ expr_let x381 := Z.add_with_get_carry(2^64, 0, 0, x376₁) (* : uint64_t, uint1_t *) in
+ expr_let x382 := Z.add_with_get_carry(2^64, x381₂, 0, x377₁) (* : uint1_t, uint1_t *) in
+ expr_let x383 := Z.add_with_get_carry(2^64, x382₂, 0, x378₁) (* : uint64_t, uint1_t *) in
+ expr_let x384 := Z.add_with_get_carry(2^64, x383₂, 0, x379₁) (* : uint64_t, uint1_t *) in
+ expr_let x385 := Z.add_with_get_carry(2^64, x384₂, 0, x380₁) (* : uint64_t, uint1_t *) in
+ expr_let x386 := Z.add_with_get_carry(2^64, 0, 0, x381₁) (* : uint64_t, uint1_t *) in
+ expr_let x387 := Z.add_with_get_carry(2^64, x386₂, 0, x382₁) (* : uint1_t, uint1_t *) in
+ expr_let x388 := Z.add_with_get_carry(2^64, x387₂, 0, x383₁) (* : uint64_t, uint1_t *) in
+ expr_let x389 := Z.add_with_get_carry(2^64, x388₂, 0, x384₁) (* : uint64_t, uint1_t *) in
+ expr_let x390 := Z.add_with_get_carry(2^64, x389₂, 0, x385₁) (* : uint64_t, uint1_t *) in
+ expr_let x391 := Z.add_with_get_carry(2^64, 0, 0, x386₁) (* : uint64_t, uint1_t *) in
+ expr_let x392 := Z.add_with_get_carry(2^64, x391₂, 0, x387₁) (* : uint1_t, uint1_t *) in
+ expr_let x393 := Z.add_with_get_carry(2^64, x392₂, 0, x388₁) (* : uint64_t, uint1_t *) in
+ expr_let x394 := Z.add_with_get_carry(2^64, x393₂, 0, x389₁) (* : uint64_t, uint1_t *) in
+ expr_let x395 := Z.add_with_get_carry(2^64, x394₂, 0, x390₁) (* : uint64_t, uint1_t *) in
+ expr_let x396 := Z.add_with_get_carry(2^64, 0, 0, x391₁) (* : uint64_t, uint1_t *) in
+ expr_let x397 := Z.add_with_get_carry(2^64, x396₂, 0, x392₁) (* : uint1_t, uint1_t *) in
+ expr_let x398 := Z.add_with_get_carry(2^64, x397₂, 0, x393₁) (* : uint64_t, uint1_t *) in
+ expr_let x399 := Z.add_with_get_carry(2^64, x398₂, 0, x394₁) (* : uint64_t, uint1_t *) in
+ expr_let x400 := Z.add_with_get_carry(2^64, x399₂, 0, x395₁) (* : uint64_t, uint1_t *) in
+ expr_let x401 := Z.add_with_get_carry(2^64, 0, 0, x396₁) (* : uint64_t, uint1_t *) in
+ expr_let x402 := Z.add_with_get_carry(2^64, x401₂, 0, x397₁) (* : uint1_t, uint1_t *) in
+ expr_let x403 := Z.add_with_get_carry(2^64, x402₂, 0, x398₁) (* : uint64_t, uint1_t *) in
+ expr_let x404 := Z.add_with_get_carry(2^64, x403₂, 0, x399₁) (* : uint64_t, uint1_t *) in
+ expr_let x405 := Z.add_with_get_carry(2^64, x404₂, 0, x400₁) (* : uint64_t, uint1_t *) in
+ expr_let x406 := Z.add_with_get_carry(2^64, 0, 0, x401₁) (* : uint64_t, uint1_t *) in
+ expr_let x407 := Z.add_with_get_carry(2^64, x406₂, 0, x402₁) (* : uint1_t, uint1_t *) in
+ expr_let x408 := Z.add_with_get_carry(2^64, x407₂, 0, x403₁) (* : uint64_t, uint1_t *) in
+ expr_let x409 := Z.add_with_get_carry(2^64, x408₂, 0, x404₁) (* : uint64_t, uint1_t *) in
+ expr_let x410 := Z.add_with_get_carry(2^64, x409₂, 0, x405₁) (* : uint64_t, uint1_t *) in
+ expr_let x411 := Z.add_with_get_carry(2^64, 0, 0, x406₁) (* : uint64_t, uint1_t *) in
+ expr_let x412 := Z.add_with_get_carry(2^64, x411₂, 0, x407₁) (* : uint1_t, uint1_t *) in
+ expr_let x413 := Z.add_with_get_carry(2^64, x412₂, 0, x408₁) (* : uint64_t, uint1_t *) in
+ expr_let x414 := Z.add_with_get_carry(2^64, x413₂, 0, x409₁) (* : uint64_t, uint1_t *) in
+ expr_let x415 := Z.add_with_get_carry(2^64, x414₂, 0, x410₁) (* : uint64_t, uint1_t *) in
+ expr_let x416 := Z.add_with_get_carry(2^64, 0, 0, x411₁) (* : uint64_t, uint1_t *) in
+ expr_let x417 := Z.add_with_get_carry(2^64, x416₂, x343, x412₁) (* : uint64_t, uint1_t *) in
+ expr_let x418 := Z.add_with_get_carry(2^64, x417₂, x341, x413₁) (* : uint64_t, uint1_t *) in
+ expr_let x419 := Z.add_with_get_carry(2^64, x418₂, x339, x414₁) (* : uint64_t, uint1_t *) in
+ expr_let x420 := Z.add_with_get_carry(2^64, x419₂, 0, x415₁) (* : uint64_t, uint1_t *) in
+ expr_let x421 := Z.add_with_get_carry(2^64, 0, x416₁, x328₁) (* : uint64_t, uint1_t *) in
+ expr_let x422 := Z.add_with_get_carry(2^64, x421₂, x417₁, x329₁) (* : uint64_t, uint1_t *) in
+ expr_let x423 := Z.add_with_get_carry(2^64, x422₂, x418₁, x330₁) (* : uint64_t, uint1_t *) in
+ expr_let x424 := Z.add_with_get_carry(2^64, x423₂, x419₁, x331₁) (* : uint64_t, uint1_t *) in
+ expr_let x425 := Z.add_with_get_carry(2^64, x424₂, x420₁, x332₁) (* : uint64_t, uint1_t *) in
+ expr_let x426 := Z.add_with_get_carry(2^64, x425₂, 0, x332₂) (* : uint64_t, uint1_t *) in
+ expr_let x427 := Z.mul_split(2^64, x4, x2[3]) (* : uint64_t, uint64_t *) in
+ expr_let x428 := Z.mul_split(2^64, x4, x2[2]) (* : uint64_t, uint64_t *) in
+ expr_let x429 := Z.mul_split(2^64, x4, x2[1]) (* : uint64_t, uint64_t *) in
+ expr_let x430 := Z.mul_split(2^64, x4, x2[0]) (* : uint64_t, uint64_t *) in
+ expr_let x431 := 2^192 * 0 (* : uint1_t *) in
+ expr_let x432 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x433 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x434 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x435 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x436 := 1 * 0 (* : uint1_t *) in
+ expr_let x437 := 1 * 0 (* : uint1_t *) in
+ expr_let x438 := 1 * 0 (* : uint1_t *) in
+ expr_let x439 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x440 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x441 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x442 := 1 * 0 (* : uint1_t *) in
+ expr_let x443 := 1 * 0 (* : uint1_t *) in
+ expr_let x444 := 1 * 0 (* : uint1_t *) in
+ expr_let x445 := 1 * 0 (* : uint1_t *) in
+ expr_let x446 := 1 * 0 (* : uint1_t *) in
+ expr_let x447 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x448 := 1 * 0 (* : uint1_t *) in
+ expr_let x449 := 1 * 0 (* : uint1_t *) in
+ expr_let x450 := 1 * 0 (* : uint1_t *) in
+ expr_let x451 := 1 * 0 (* : uint1_t *) in
+ expr_let x452 := 1 * 0 (* : uint1_t *) in
+ expr_let x453 := 1 * 0 (* : uint1_t *) in
+ expr_let x454 := 1 * 0 (* : uint1_t *) in
+ expr_let x455 := x427₂ * 1 (* : uint64_t *) in
+ expr_let x456 := x427₁ * 1 (* : uint64_t *) in
+ expr_let x457 := x428₂ * 1 (* : uint64_t *) in
+ expr_let x458 := x428₁ * 1 (* : uint64_t *) in
+ expr_let x459 := x429₂ * 1 (* : uint64_t *) in
+ expr_let x460 := x429₁ * 1 (* : uint64_t *) in
+ expr_let x461 := x430₂ * 1 (* : uint64_t *) in
+ expr_let x462 := x430₁ * 1 (* : uint64_t *) in
+ expr_let x463 := Z.add_with_get_carry(2^64, 0, 0, x462) (* : uint64_t, uint1_t *) in
+ expr_let x464 := Z.add_with_get_carry(2^64, x463₂, 0, x461) (* : uint64_t, uint1_t *) in
+ expr_let x465 := Z.add_with_get_carry(2^64, x464₂, 0, x459) (* : uint64_t, uint1_t *) in
+ expr_let x466 := Z.add_with_get_carry(2^64, x465₂, 0, x457) (* : uint64_t, uint1_t *) in
+ expr_let x467 := Z.add_with_get_carry(2^64, x466₂, x431, x455) (* : uint64_t, uint1_t *) in
+ expr_let x468 := Z.add_with_get_carry(2^64, 0, 0, x463₁) (* : uint64_t, uint1_t *) in
+ expr_let x469 := Z.add_with_get_carry(2^64, x468₂, 0, x464₁) (* : uint64_t, uint1_t *) in
+ expr_let x470 := Z.add_with_get_carry(2^64, x469₂, 0, x465₁) (* : uint64_t, uint1_t *) in
+ expr_let x471 := Z.add_with_get_carry(2^64, x470₂, 0, x466₁) (* : uint64_t, uint1_t *) in
+ expr_let x472 := Z.add_with_get_carry(2^64, x471₂, x432, x467₁) (* : uint64_t, uint1_t *) in
+ expr_let x473 := Z.add_with_get_carry(2^64, 0, 0, x468₁) (* : uint64_t, uint1_t *) in
+ expr_let x474 := Z.add_with_get_carry(2^64, x473₂, 0, x469₁) (* : uint64_t, uint1_t *) in
+ expr_let x475 := Z.add_with_get_carry(2^64, x474₂, 0, x470₁) (* : uint64_t, uint1_t *) in
+ expr_let x476 := Z.add_with_get_carry(2^64, x475₂, 0, x471₁) (* : uint64_t, uint1_t *) in
+ expr_let x477 := Z.add_with_get_carry(2^64, x476₂, x433, x472₁) (* : uint64_t, uint1_t *) in
+ expr_let x478 := Z.add_with_get_carry(2^64, 0, 0, x473₁) (* : uint64_t, uint1_t *) in
+ expr_let x479 := Z.add_with_get_carry(2^64, x478₂, 0, x474₁) (* : uint64_t, uint1_t *) in
+ expr_let x480 := Z.add_with_get_carry(2^64, x479₂, 0, x475₁) (* : uint64_t, uint1_t *) in
+ expr_let x481 := Z.add_with_get_carry(2^64, x480₂, 0, x476₁) (* : uint64_t, uint1_t *) in
+ expr_let x482 := Z.add_with_get_carry(2^64, x481₂, x434, x477₁) (* : uint64_t, uint1_t *) in
+ expr_let x483 := Z.add_with_get_carry(2^64, 0, 0, x478₁) (* : uint64_t, uint1_t *) in
+ expr_let x484 := Z.add_with_get_carry(2^64, x483₂, 0, x479₁) (* : uint64_t, uint1_t *) in
+ expr_let x485 := Z.add_with_get_carry(2^64, x484₂, 0, x480₁) (* : uint64_t, uint1_t *) in
+ expr_let x486 := Z.add_with_get_carry(2^64, x485₂, 0, x481₁) (* : uint64_t, uint1_t *) in
+ expr_let x487 := Z.add_with_get_carry(2^64, x486₂, x435, x482₁) (* : uint64_t, uint1_t *) in
+ expr_let x488 := Z.add_with_get_carry(2^64, 0, 0, x483₁) (* : uint64_t, uint1_t *) in
+ expr_let x489 := Z.add_with_get_carry(2^64, x488₂, 0, x484₁) (* : uint64_t, uint1_t *) in
+ expr_let x490 := Z.add_with_get_carry(2^64, x489₂, 0, x485₁) (* : uint64_t, uint1_t *) in
+ expr_let x491 := Z.add_with_get_carry(2^64, x490₂, 0, x486₁) (* : uint64_t, uint1_t *) in
+ expr_let x492 := Z.add_with_get_carry(2^64, x491₂, x436, x487₁) (* : uint64_t, uint1_t *) in
+ expr_let x493 := Z.add_with_get_carry(2^64, 0, 0, x488₁) (* : uint64_t, uint1_t *) in
+ expr_let x494 := Z.add_with_get_carry(2^64, x493₂, 0, x489₁) (* : uint64_t, uint1_t *) in
+ expr_let x495 := Z.add_with_get_carry(2^64, x494₂, 0, x490₁) (* : uint64_t, uint1_t *) in
+ expr_let x496 := Z.add_with_get_carry(2^64, x495₂, 0, x491₁) (* : uint64_t, uint1_t *) in
+ expr_let x497 := Z.add_with_get_carry(2^64, x496₂, x437, x492₁) (* : uint64_t, uint1_t *) in
+ expr_let x498 := Z.add_with_get_carry(2^64, 0, 0, x493₁) (* : uint64_t, uint1_t *) in
+ expr_let x499 := Z.add_with_get_carry(2^64, x498₂, 0, x494₁) (* : uint64_t, uint1_t *) in
+ expr_let x500 := Z.add_with_get_carry(2^64, x499₂, 0, x495₁) (* : uint64_t, uint1_t *) in
+ expr_let x501 := Z.add_with_get_carry(2^64, x500₂, 0, x496₁) (* : uint64_t, uint1_t *) in
+ expr_let x502 := Z.add_with_get_carry(2^64, x501₂, x439, x497₁) (* : uint64_t, uint1_t *) in
+ expr_let x503 := Z.add_with_get_carry(2^64, 0, 0, x498₁) (* : uint64_t, uint1_t *) in
+ expr_let x504 := Z.add_with_get_carry(2^64, x503₂, 0, x499₁) (* : uint64_t, uint1_t *) in
+ expr_let x505 := Z.add_with_get_carry(2^64, x504₂, 0, x500₁) (* : uint64_t, uint1_t *) in
+ expr_let x506 := Z.add_with_get_carry(2^64, x505₂, 0, x501₁) (* : uint64_t, uint1_t *) in
+ expr_let x507 := Z.add_with_get_carry(2^64, x506₂, x440, x502₁) (* : uint64_t, uint1_t *) in
+ expr_let x508 := Z.add_with_get_carry(2^64, 0, 0, x503₁) (* : uint64_t, uint1_t *) in
+ expr_let x509 := Z.add_with_get_carry(2^64, x508₂, 0, x504₁) (* : uint64_t, uint1_t *) in
+ expr_let x510 := Z.add_with_get_carry(2^64, x509₂, 0, x505₁) (* : uint64_t, uint1_t *) in
+ expr_let x511 := Z.add_with_get_carry(2^64, x510₂, x438, x506₁) (* : uint64_t, uint1_t *) in
+ expr_let x512 := Z.add_with_get_carry(2^64, x511₂, x441, x507₁) (* : uint64_t, uint1_t *) in
+ expr_let x513 := Z.add_with_get_carry(2^64, 0, 0, x508₁) (* : uint64_t, uint1_t *) in
+ expr_let x514 := Z.add_with_get_carry(2^64, x513₂, 0, x509₁) (* : uint64_t, uint1_t *) in
+ expr_let x515 := Z.add_with_get_carry(2^64, x514₂, 0, x510₁) (* : uint64_t, uint1_t *) in
+ expr_let x516 := Z.add_with_get_carry(2^64, x515₂, x444, x511₁) (* : uint64_t, uint1_t *) in
+ expr_let x517 := Z.add_with_get_carry(2^64, x516₂, x442, x512₁) (* : uint64_t, uint1_t *) in
+ expr_let x518 := Z.add_with_get_carry(2^64, 0, 0, x513₁) (* : uint64_t, uint1_t *) in
+ expr_let x519 := Z.add_with_get_carry(2^64, x518₂, 0, x514₁) (* : uint64_t, uint1_t *) in
+ expr_let x520 := Z.add_with_get_carry(2^64, x519₂, x446, x515₁) (* : uint64_t, uint1_t *) in
+ expr_let x521 := Z.add_with_get_carry(2^64, x520₂, x445, x516₁) (* : uint64_t, uint1_t *) in
+ expr_let x522 := Z.add_with_get_carry(2^64, x521₂, x443, x517₁) (* : uint64_t, uint1_t *) in
+ expr_let x523 := Z.add_with_get_carry(2^64, 0, 0, x518₁) (* : uint64_t, uint1_t *) in
+ expr_let x524 := Z.add_with_get_carry(2^64, x523₂, 0, x519₁) (* : uint64_t, uint1_t *) in
+ expr_let x525 := Z.add_with_get_carry(2^64, x524₂, x452, x520₁) (* : uint64_t, uint1_t *) in
+ expr_let x526 := Z.add_with_get_carry(2^64, x525₂, x450, x521₁) (* : uint64_t, uint1_t *) in
+ expr_let x527 := Z.add_with_get_carry(2^64, x526₂, x447, x522₁) (* : uint64_t, uint1_t *) in
+ expr_let x528 := Z.add_with_get_carry(2^64, 0, 0, x523₁) (* : uint64_t, uint1_t *) in
+ expr_let x529 := Z.add_with_get_carry(2^64, x528₂, x454, x524₁) (* : uint64_t, uint1_t *) in
+ expr_let x530 := Z.add_with_get_carry(2^64, x529₂, x453, x525₁) (* : uint64_t, uint1_t *) in
+ expr_let x531 := Z.add_with_get_carry(2^64, x530₂, x451, x526₁) (* : uint64_t, uint1_t *) in
+ expr_let x532 := Z.add_with_get_carry(2^64, x531₂, x448, x527₁) (* : uint64_t, uint1_t *) in
+ expr_let x533 := Z.add_with_get_carry(2^64, 0, 0, x528₁) (* : uint64_t, uint1_t *) in
+ expr_let x534 := Z.add_with_get_carry(2^64, x533₂, x460, x529₁) (* : uint64_t, uint1_t *) in
+ expr_let x535 := Z.add_with_get_carry(2^64, x534₂, x458, x530₁) (* : uint64_t, uint1_t *) in
+ expr_let x536 := Z.add_with_get_carry(2^64, x535₂, x456, x531₁) (* : uint64_t, uint1_t *) in
+ expr_let x537 := Z.add_with_get_carry(2^64, x536₂, x449, x532₁) (* : uint64_t, uint1_t *) in
+ expr_let x538 := Z.add_with_get_carry(2^64, 0, x533₁, x422₁) (* : uint64_t, uint1_t *) in
+ expr_let x539 := Z.add_with_get_carry(2^64, x538₂, x534₁, x423₁) (* : uint64_t, uint1_t *) in
+ expr_let x540 := Z.add_with_get_carry(2^64, x539₂, x535₁, x424₁) (* : uint64_t, uint1_t *) in
+ expr_let x541 := Z.add_with_get_carry(2^64, x540₂, x536₁, x425₁) (* : uint64_t, uint1_t *) in
+ expr_let x542 := Z.add_with_get_carry(2^64, x541₂, x537₁, x426₁) (* : uint64_t, uint1_t *) in
+ expr_let x543 := (Z.mul_split(2^64, x538₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x544 := Z.mul_split(2^64, x543, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x545 := Z.mul_split(2^64, x543, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x546 := Z.mul_split(2^64, x543, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x547 := Z.mul_split(2^64, x543, 1) (* : uint64_t, uint1_t *) in
+ expr_let x548 := x544₂ * 1 (* : uint64_t *) in
+ expr_let x549 := x544₁ * 1 (* : uint64_t *) in
+ expr_let x550 := x545₂ * 1 (* : uint64_t *) in
+ expr_let x551 := x545₁ * 1 (* : uint64_t *) in
+ expr_let x552 := x546₂ * 1 (* : uint64_t *) in
+ expr_let x553 := x546₁ * 1 (* : uint64_t *) in
+ expr_let x554 := x547₂ * 1 (* : uint1_t *) in
+ expr_let x555 := x547₁ * 1 (* : uint64_t *) in
+ expr_let x556 := Z.add_with_get_carry(2^64, 0, 0, x555) (* : uint64_t, uint1_t *) in
+ expr_let x557 := Z.add_with_get_carry(2^64, x556₂, 0, x554) (* : uint1_t, uint1_t *) in
+ expr_let x558 := Z.add_with_get_carry(2^64, x557₂, 0, x552) (* : uint64_t, uint1_t *) in
+ expr_let x559 := Z.add_with_get_carry(2^64, x558₂, 0, x550) (* : uint64_t, uint1_t *) in
+ expr_let x560 := Z.add_with_get_carry(2^64, x559₂, 0, x548) (* : uint64_t, uint1_t *) in
+ expr_let x561 := Z.add_with_get_carry(2^64, 0, 0, x556₁) (* : uint64_t, uint1_t *) in
+ expr_let x562 := Z.add_with_get_carry(2^64, x561₂, 0, x557₁) (* : uint1_t, uint1_t *) in
+ expr_let x563 := Z.add_with_get_carry(2^64, x562₂, 0, x558₁) (* : uint64_t, uint1_t *) in
+ expr_let x564 := Z.add_with_get_carry(2^64, x563₂, 0, x559₁) (* : uint64_t, uint1_t *) in
+ expr_let x565 := Z.add_with_get_carry(2^64, x564₂, 0, x560₁) (* : uint64_t, uint1_t *) in
+ expr_let x566 := Z.add_with_get_carry(2^64, 0, 0, x561₁) (* : uint64_t, uint1_t *) in
+ expr_let x567 := Z.add_with_get_carry(2^64, x566₂, 0, x562₁) (* : uint1_t, uint1_t *) in
+ expr_let x568 := Z.add_with_get_carry(2^64, x567₂, 0, x563₁) (* : uint64_t, uint1_t *) in
+ expr_let x569 := Z.add_with_get_carry(2^64, x568₂, 0, x564₁) (* : uint64_t, uint1_t *) in
+ expr_let x570 := Z.add_with_get_carry(2^64, x569₂, 0, x565₁) (* : uint64_t, uint1_t *) in
+ expr_let x571 := Z.add_with_get_carry(2^64, 0, 0, x566₁) (* : uint64_t, uint1_t *) in
+ expr_let x572 := Z.add_with_get_carry(2^64, x571₂, 0, x567₁) (* : uint1_t, uint1_t *) in
+ expr_let x573 := Z.add_with_get_carry(2^64, x572₂, 0, x568₁) (* : uint64_t, uint1_t *) in
+ expr_let x574 := Z.add_with_get_carry(2^64, x573₂, 0, x569₁) (* : uint64_t, uint1_t *) in
+ expr_let x575 := Z.add_with_get_carry(2^64, x574₂, 0, x570₁) (* : uint64_t, uint1_t *) in
+ expr_let x576 := Z.add_with_get_carry(2^64, 0, 0, x571₁) (* : uint64_t, uint1_t *) in
+ expr_let x577 := Z.add_with_get_carry(2^64, x576₂, 0, x572₁) (* : uint1_t, uint1_t *) in
+ expr_let x578 := Z.add_with_get_carry(2^64, x577₂, 0, x573₁) (* : uint64_t, uint1_t *) in
+ expr_let x579 := Z.add_with_get_carry(2^64, x578₂, 0, x574₁) (* : uint64_t, uint1_t *) in
+ expr_let x580 := Z.add_with_get_carry(2^64, x579₂, 0, x575₁) (* : uint64_t, uint1_t *) in
+ expr_let x581 := Z.add_with_get_carry(2^64, 0, 0, x576₁) (* : uint64_t, uint1_t *) in
+ expr_let x582 := Z.add_with_get_carry(2^64, x581₂, 0, x577₁) (* : uint1_t, uint1_t *) in
+ expr_let x583 := Z.add_with_get_carry(2^64, x582₂, 0, x578₁) (* : uint64_t, uint1_t *) in
+ expr_let x584 := Z.add_with_get_carry(2^64, x583₂, 0, x579₁) (* : uint64_t, uint1_t *) in
+ expr_let x585 := Z.add_with_get_carry(2^64, x584₂, 0, x580₁) (* : uint64_t, uint1_t *) in
+ expr_let x586 := Z.add_with_get_carry(2^64, 0, 0, x581₁) (* : uint64_t, uint1_t *) in
+ expr_let x587 := Z.add_with_get_carry(2^64, x586₂, 0, x582₁) (* : uint1_t, uint1_t *) in
+ expr_let x588 := Z.add_with_get_carry(2^64, x587₂, 0, x583₁) (* : uint64_t, uint1_t *) in
+ expr_let x589 := Z.add_with_get_carry(2^64, x588₂, 0, x584₁) (* : uint64_t, uint1_t *) in
+ expr_let x590 := Z.add_with_get_carry(2^64, x589₂, 0, x585₁) (* : uint64_t, uint1_t *) in
+ expr_let x591 := Z.add_with_get_carry(2^64, 0, 0, x586₁) (* : uint64_t, uint1_t *) in
+ expr_let x592 := Z.add_with_get_carry(2^64, x591₂, 0, x587₁) (* : uint1_t, uint1_t *) in
+ expr_let x593 := Z.add_with_get_carry(2^64, x592₂, 0, x588₁) (* : uint64_t, uint1_t *) in
+ expr_let x594 := Z.add_with_get_carry(2^64, x593₂, 0, x589₁) (* : uint64_t, uint1_t *) in
+ expr_let x595 := Z.add_with_get_carry(2^64, x594₂, 0, x590₁) (* : uint64_t, uint1_t *) in
+ expr_let x596 := Z.add_with_get_carry(2^64, 0, 0, x591₁) (* : uint64_t, uint1_t *) in
+ expr_let x597 := Z.add_with_get_carry(2^64, x596₂, 0, x592₁) (* : uint1_t, uint1_t *) in
+ expr_let x598 := Z.add_with_get_carry(2^64, x597₂, 0, x593₁) (* : uint64_t, uint1_t *) in
+ expr_let x599 := Z.add_with_get_carry(2^64, x598₂, 0, x594₁) (* : uint64_t, uint1_t *) in
+ expr_let x600 := Z.add_with_get_carry(2^64, x599₂, 0, x595₁) (* : uint64_t, uint1_t *) in
+ expr_let x601 := Z.add_with_get_carry(2^64, 0, 0, x596₁) (* : uint64_t, uint1_t *) in
+ expr_let x602 := Z.add_with_get_carry(2^64, x601₂, 0, x597₁) (* : uint1_t, uint1_t *) in
+ expr_let x603 := Z.add_with_get_carry(2^64, x602₂, 0, x598₁) (* : uint64_t, uint1_t *) in
+ expr_let x604 := Z.add_with_get_carry(2^64, x603₂, 0, x599₁) (* : uint64_t, uint1_t *) in
+ expr_let x605 := Z.add_with_get_carry(2^64, x604₂, 0, x600₁) (* : uint64_t, uint1_t *) in
+ expr_let x606 := Z.add_with_get_carry(2^64, 0, 0, x601₁) (* : uint64_t, uint1_t *) in
+ expr_let x607 := Z.add_with_get_carry(2^64, x606₂, 0, x602₁) (* : uint1_t, uint1_t *) in
+ expr_let x608 := Z.add_with_get_carry(2^64, x607₂, 0, x603₁) (* : uint64_t, uint1_t *) in
+ expr_let x609 := Z.add_with_get_carry(2^64, x608₂, 0, x604₁) (* : uint64_t, uint1_t *) in
+ expr_let x610 := Z.add_with_get_carry(2^64, x609₂, 0, x605₁) (* : uint64_t, uint1_t *) in
+ expr_let x611 := Z.add_with_get_carry(2^64, 0, 0, x606₁) (* : uint64_t, uint1_t *) in
+ expr_let x612 := Z.add_with_get_carry(2^64, x611₂, 0, x607₁) (* : uint1_t, uint1_t *) in
+ expr_let x613 := Z.add_with_get_carry(2^64, x612₂, 0, x608₁) (* : uint64_t, uint1_t *) in
+ expr_let x614 := Z.add_with_get_carry(2^64, x613₂, 0, x609₁) (* : uint64_t, uint1_t *) in
+ expr_let x615 := Z.add_with_get_carry(2^64, x614₂, 0, x610₁) (* : uint64_t, uint1_t *) in
+ expr_let x616 := Z.add_with_get_carry(2^64, 0, 0, x611₁) (* : uint64_t, uint1_t *) in
+ expr_let x617 := Z.add_with_get_carry(2^64, x616₂, 0, x612₁) (* : uint1_t, uint1_t *) in
+ expr_let x618 := Z.add_with_get_carry(2^64, x617₂, 0, x613₁) (* : uint64_t, uint1_t *) in
+ expr_let x619 := Z.add_with_get_carry(2^64, x618₂, 0, x614₁) (* : uint64_t, uint1_t *) in
+ expr_let x620 := Z.add_with_get_carry(2^64, x619₂, 0, x615₁) (* : uint64_t, uint1_t *) in
+ expr_let x621 := Z.add_with_get_carry(2^64, 0, 0, x616₁) (* : uint64_t, uint1_t *) in
+ expr_let x622 := Z.add_with_get_carry(2^64, x621₂, 0, x617₁) (* : uint1_t, uint1_t *) in
+ expr_let x623 := Z.add_with_get_carry(2^64, x622₂, 0, x618₁) (* : uint64_t, uint1_t *) in
+ expr_let x624 := Z.add_with_get_carry(2^64, x623₂, 0, x619₁) (* : uint64_t, uint1_t *) in
+ expr_let x625 := Z.add_with_get_carry(2^64, x624₂, 0, x620₁) (* : uint64_t, uint1_t *) in
+ expr_let x626 := Z.add_with_get_carry(2^64, 0, 0, x621₁) (* : uint64_t, uint1_t *) in
+ expr_let x627 := Z.add_with_get_carry(2^64, x626₂, x553, x622₁) (* : uint64_t, uint1_t *) in
+ expr_let x628 := Z.add_with_get_carry(2^64, x627₂, x551, x623₁) (* : uint64_t, uint1_t *) in
+ expr_let x629 := Z.add_with_get_carry(2^64, x628₂, x549, x624₁) (* : uint64_t, uint1_t *) in
+ expr_let x630 := Z.add_with_get_carry(2^64, x629₂, 0, x625₁) (* : uint64_t, uint1_t *) in
+ expr_let x631 := Z.add_with_get_carry(2^64, 0, x626₁, x538₁) (* : uint64_t, uint1_t *) in
+ expr_let x632 := Z.add_with_get_carry(2^64, x631₂, x627₁, x539₁) (* : uint64_t, uint1_t *) in
+ expr_let x633 := Z.add_with_get_carry(2^64, x632₂, x628₁, x540₁) (* : uint64_t, uint1_t *) in
+ expr_let x634 := Z.add_with_get_carry(2^64, x633₂, x629₁, x541₁) (* : uint64_t, uint1_t *) in
+ expr_let x635 := Z.add_with_get_carry(2^64, x634₂, x630₁, x542₁) (* : uint64_t, uint1_t *) in
+ expr_let x636 := Z.add_with_get_carry(2^64, x635₂, 0, x542₂) (* : uint64_t, uint1_t *) in
+ expr_let x637 := Z.mul_split(2^64, x5, x2[3]) (* : uint64_t, uint64_t *) in
+ expr_let x638 := Z.mul_split(2^64, x5, x2[2]) (* : uint64_t, uint64_t *) in
+ expr_let x639 := Z.mul_split(2^64, x5, x2[1]) (* : uint64_t, uint64_t *) in
+ expr_let x640 := Z.mul_split(2^64, x5, x2[0]) (* : uint64_t, uint64_t *) in
+ expr_let x641 := 2^192 * 0 (* : uint1_t *) in
+ expr_let x642 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x643 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x644 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x645 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x646 := 1 * 0 (* : uint1_t *) in
+ expr_let x647 := 1 * 0 (* : uint1_t *) in
+ expr_let x648 := 1 * 0 (* : uint1_t *) in
+ expr_let x649 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x650 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x651 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x652 := 1 * 0 (* : uint1_t *) in
+ expr_let x653 := 1 * 0 (* : uint1_t *) in
+ expr_let x654 := 1 * 0 (* : uint1_t *) in
+ expr_let x655 := 1 * 0 (* : uint1_t *) in
+ expr_let x656 := 1 * 0 (* : uint1_t *) in
+ expr_let x657 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x658 := 1 * 0 (* : uint1_t *) in
+ expr_let x659 := 1 * 0 (* : uint1_t *) in
+ expr_let x660 := 1 * 0 (* : uint1_t *) in
+ expr_let x661 := 1 * 0 (* : uint1_t *) in
+ expr_let x662 := 1 * 0 (* : uint1_t *) in
+ expr_let x663 := 1 * 0 (* : uint1_t *) in
+ expr_let x664 := 1 * 0 (* : uint1_t *) in
+ expr_let x665 := x637₂ * 1 (* : uint64_t *) in
+ expr_let x666 := x637₁ * 1 (* : uint64_t *) in
+ expr_let x667 := x638₂ * 1 (* : uint64_t *) in
+ expr_let x668 := x638₁ * 1 (* : uint64_t *) in
+ expr_let x669 := x639₂ * 1 (* : uint64_t *) in
+ expr_let x670 := x639₁ * 1 (* : uint64_t *) in
+ expr_let x671 := x640₂ * 1 (* : uint64_t *) in
+ expr_let x672 := x640₁ * 1 (* : uint64_t *) in
+ expr_let x673 := Z.add_with_get_carry(2^64, 0, 0, x672) (* : uint64_t, uint1_t *) in
+ expr_let x674 := Z.add_with_get_carry(2^64, x673₂, 0, x671) (* : uint64_t, uint1_t *) in
+ expr_let x675 := Z.add_with_get_carry(2^64, x674₂, 0, x669) (* : uint64_t, uint1_t *) in
+ expr_let x676 := Z.add_with_get_carry(2^64, x675₂, 0, x667) (* : uint64_t, uint1_t *) in
+ expr_let x677 := Z.add_with_get_carry(2^64, x676₂, x641, x665) (* : uint64_t, uint1_t *) in
+ expr_let x678 := Z.add_with_get_carry(2^64, 0, 0, x673₁) (* : uint64_t, uint1_t *) in
+ expr_let x679 := Z.add_with_get_carry(2^64, x678₂, 0, x674₁) (* : uint64_t, uint1_t *) in
+ expr_let x680 := Z.add_with_get_carry(2^64, x679₂, 0, x675₁) (* : uint64_t, uint1_t *) in
+ expr_let x681 := Z.add_with_get_carry(2^64, x680₂, 0, x676₁) (* : uint64_t, uint1_t *) in
+ expr_let x682 := Z.add_with_get_carry(2^64, x681₂, x642, x677₁) (* : uint64_t, uint1_t *) in
+ expr_let x683 := Z.add_with_get_carry(2^64, 0, 0, x678₁) (* : uint64_t, uint1_t *) in
+ expr_let x684 := Z.add_with_get_carry(2^64, x683₂, 0, x679₁) (* : uint64_t, uint1_t *) in
+ expr_let x685 := Z.add_with_get_carry(2^64, x684₂, 0, x680₁) (* : uint64_t, uint1_t *) in
+ expr_let x686 := Z.add_with_get_carry(2^64, x685₂, 0, x681₁) (* : uint64_t, uint1_t *) in
+ expr_let x687 := Z.add_with_get_carry(2^64, x686₂, x643, x682₁) (* : uint64_t, uint1_t *) in
+ expr_let x688 := Z.add_with_get_carry(2^64, 0, 0, x683₁) (* : uint64_t, uint1_t *) in
+ expr_let x689 := Z.add_with_get_carry(2^64, x688₂, 0, x684₁) (* : uint64_t, uint1_t *) in
+ expr_let x690 := Z.add_with_get_carry(2^64, x689₂, 0, x685₁) (* : uint64_t, uint1_t *) in
+ expr_let x691 := Z.add_with_get_carry(2^64, x690₂, 0, x686₁) (* : uint64_t, uint1_t *) in
+ expr_let x692 := Z.add_with_get_carry(2^64, x691₂, x644, x687₁) (* : uint64_t, uint1_t *) in
+ expr_let x693 := Z.add_with_get_carry(2^64, 0, 0, x688₁) (* : uint64_t, uint1_t *) in
+ expr_let x694 := Z.add_with_get_carry(2^64, x693₂, 0, x689₁) (* : uint64_t, uint1_t *) in
+ expr_let x695 := Z.add_with_get_carry(2^64, x694₂, 0, x690₁) (* : uint64_t, uint1_t *) in
+ expr_let x696 := Z.add_with_get_carry(2^64, x695₂, 0, x691₁) (* : uint64_t, uint1_t *) in
+ expr_let x697 := Z.add_with_get_carry(2^64, x696₂, x645, x692₁) (* : uint64_t, uint1_t *) in
+ expr_let x698 := Z.add_with_get_carry(2^64, 0, 0, x693₁) (* : uint64_t, uint1_t *) in
+ expr_let x699 := Z.add_with_get_carry(2^64, x698₂, 0, x694₁) (* : uint64_t, uint1_t *) in
+ expr_let x700 := Z.add_with_get_carry(2^64, x699₂, 0, x695₁) (* : uint64_t, uint1_t *) in
+ expr_let x701 := Z.add_with_get_carry(2^64, x700₂, 0, x696₁) (* : uint64_t, uint1_t *) in
+ expr_let x702 := Z.add_with_get_carry(2^64, x701₂, x646, x697₁) (* : uint64_t, uint1_t *) in
+ expr_let x703 := Z.add_with_get_carry(2^64, 0, 0, x698₁) (* : uint64_t, uint1_t *) in
+ expr_let x704 := Z.add_with_get_carry(2^64, x703₂, 0, x699₁) (* : uint64_t, uint1_t *) in
+ expr_let x705 := Z.add_with_get_carry(2^64, x704₂, 0, x700₁) (* : uint64_t, uint1_t *) in
+ expr_let x706 := Z.add_with_get_carry(2^64, x705₂, 0, x701₁) (* : uint64_t, uint1_t *) in
+ expr_let x707 := Z.add_with_get_carry(2^64, x706₂, x647, x702₁) (* : uint64_t, uint1_t *) in
+ expr_let x708 := Z.add_with_get_carry(2^64, 0, 0, x703₁) (* : uint64_t, uint1_t *) in
+ expr_let x709 := Z.add_with_get_carry(2^64, x708₂, 0, x704₁) (* : uint64_t, uint1_t *) in
+ expr_let x710 := Z.add_with_get_carry(2^64, x709₂, 0, x705₁) (* : uint64_t, uint1_t *) in
+ expr_let x711 := Z.add_with_get_carry(2^64, x710₂, 0, x706₁) (* : uint64_t, uint1_t *) in
+ expr_let x712 := Z.add_with_get_carry(2^64, x711₂, x649, x707₁) (* : uint64_t, uint1_t *) in
+ expr_let x713 := Z.add_with_get_carry(2^64, 0, 0, x708₁) (* : uint64_t, uint1_t *) in
+ expr_let x714 := Z.add_with_get_carry(2^64, x713₂, 0, x709₁) (* : uint64_t, uint1_t *) in
+ expr_let x715 := Z.add_with_get_carry(2^64, x714₂, 0, x710₁) (* : uint64_t, uint1_t *) in
+ expr_let x716 := Z.add_with_get_carry(2^64, x715₂, 0, x711₁) (* : uint64_t, uint1_t *) in
+ expr_let x717 := Z.add_with_get_carry(2^64, x716₂, x650, x712₁) (* : uint64_t, uint1_t *) in
+ expr_let x718 := Z.add_with_get_carry(2^64, 0, 0, x713₁) (* : uint64_t, uint1_t *) in
+ expr_let x719 := Z.add_with_get_carry(2^64, x718₂, 0, x714₁) (* : uint64_t, uint1_t *) in
+ expr_let x720 := Z.add_with_get_carry(2^64, x719₂, 0, x715₁) (* : uint64_t, uint1_t *) in
+ expr_let x721 := Z.add_with_get_carry(2^64, x720₂, x648, x716₁) (* : uint64_t, uint1_t *) in
+ expr_let x722 := Z.add_with_get_carry(2^64, x721₂, x651, x717₁) (* : uint64_t, uint1_t *) in
+ expr_let x723 := Z.add_with_get_carry(2^64, 0, 0, x718₁) (* : uint64_t, uint1_t *) in
+ expr_let x724 := Z.add_with_get_carry(2^64, x723₂, 0, x719₁) (* : uint64_t, uint1_t *) in
+ expr_let x725 := Z.add_with_get_carry(2^64, x724₂, 0, x720₁) (* : uint64_t, uint1_t *) in
+ expr_let x726 := Z.add_with_get_carry(2^64, x725₂, x654, x721₁) (* : uint64_t, uint1_t *) in
+ expr_let x727 := Z.add_with_get_carry(2^64, x726₂, x652, x722₁) (* : uint64_t, uint1_t *) in
+ expr_let x728 := Z.add_with_get_carry(2^64, 0, 0, x723₁) (* : uint64_t, uint1_t *) in
+ expr_let x729 := Z.add_with_get_carry(2^64, x728₂, 0, x724₁) (* : uint64_t, uint1_t *) in
+ expr_let x730 := Z.add_with_get_carry(2^64, x729₂, x656, x725₁) (* : uint64_t, uint1_t *) in
+ expr_let x731 := Z.add_with_get_carry(2^64, x730₂, x655, x726₁) (* : uint64_t, uint1_t *) in
+ expr_let x732 := Z.add_with_get_carry(2^64, x731₂, x653, x727₁) (* : uint64_t, uint1_t *) in
+ expr_let x733 := Z.add_with_get_carry(2^64, 0, 0, x728₁) (* : uint64_t, uint1_t *) in
+ expr_let x734 := Z.add_with_get_carry(2^64, x733₂, 0, x729₁) (* : uint64_t, uint1_t *) in
+ expr_let x735 := Z.add_with_get_carry(2^64, x734₂, x662, x730₁) (* : uint64_t, uint1_t *) in
+ expr_let x736 := Z.add_with_get_carry(2^64, x735₂, x660, x731₁) (* : uint64_t, uint1_t *) in
+ expr_let x737 := Z.add_with_get_carry(2^64, x736₂, x657, x732₁) (* : uint64_t, uint1_t *) in
+ expr_let x738 := Z.add_with_get_carry(2^64, 0, 0, x733₁) (* : uint64_t, uint1_t *) in
+ expr_let x739 := Z.add_with_get_carry(2^64, x738₂, x664, x734₁) (* : uint64_t, uint1_t *) in
+ expr_let x740 := Z.add_with_get_carry(2^64, x739₂, x663, x735₁) (* : uint64_t, uint1_t *) in
+ expr_let x741 := Z.add_with_get_carry(2^64, x740₂, x661, x736₁) (* : uint64_t, uint1_t *) in
+ expr_let x742 := Z.add_with_get_carry(2^64, x741₂, x658, x737₁) (* : uint64_t, uint1_t *) in
+ expr_let x743 := Z.add_with_get_carry(2^64, 0, 0, x738₁) (* : uint64_t, uint1_t *) in
+ expr_let x744 := Z.add_with_get_carry(2^64, x743₂, x670, x739₁) (* : uint64_t, uint1_t *) in
+ expr_let x745 := Z.add_with_get_carry(2^64, x744₂, x668, x740₁) (* : uint64_t, uint1_t *) in
+ expr_let x746 := Z.add_with_get_carry(2^64, x745₂, x666, x741₁) (* : uint64_t, uint1_t *) in
+ expr_let x747 := Z.add_with_get_carry(2^64, x746₂, x659, x742₁) (* : uint64_t, uint1_t *) in
+ expr_let x748 := Z.add_with_get_carry(2^64, 0, x743₁, x632₁) (* : uint64_t, uint1_t *) in
+ expr_let x749 := Z.add_with_get_carry(2^64, x748₂, x744₁, x633₁) (* : uint64_t, uint1_t *) in
+ expr_let x750 := Z.add_with_get_carry(2^64, x749₂, x745₁, x634₁) (* : uint64_t, uint1_t *) in
+ expr_let x751 := Z.add_with_get_carry(2^64, x750₂, x746₁, x635₁) (* : uint64_t, uint1_t *) in
+ expr_let x752 := Z.add_with_get_carry(2^64, x751₂, x747₁, x636₁) (* : uint64_t, uint1_t *) in
+ expr_let x753 := (Z.mul_split(2^64, x748₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x754 := Z.mul_split(2^64, x753, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x755 := Z.mul_split(2^64, x753, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x756 := Z.mul_split(2^64, x753, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x757 := Z.mul_split(2^64, x753, 1) (* : uint64_t, uint1_t *) in
+ expr_let x758 := x754₂ * 1 (* : uint64_t *) in
+ expr_let x759 := x754₁ * 1 (* : uint64_t *) in
+ expr_let x760 := x755₂ * 1 (* : uint64_t *) in
+ expr_let x761 := x755₁ * 1 (* : uint64_t *) in
+ expr_let x762 := x756₂ * 1 (* : uint64_t *) in
+ expr_let x763 := x756₁ * 1 (* : uint64_t *) in
+ expr_let x764 := x757₂ * 1 (* : uint1_t *) in
+ expr_let x765 := x757₁ * 1 (* : uint64_t *) in
+ expr_let x766 := Z.add_with_get_carry(2^64, 0, 0, x765) (* : uint64_t, uint1_t *) in
+ expr_let x767 := Z.add_with_get_carry(2^64, x766₂, 0, x764) (* : uint1_t, uint1_t *) in
+ expr_let x768 := Z.add_with_get_carry(2^64, x767₂, 0, x762) (* : uint64_t, uint1_t *) in
+ expr_let x769 := Z.add_with_get_carry(2^64, x768₂, 0, x760) (* : uint64_t, uint1_t *) in
+ expr_let x770 := Z.add_with_get_carry(2^64, x769₂, 0, x758) (* : uint64_t, uint1_t *) in
+ expr_let x771 := Z.add_with_get_carry(2^64, 0, 0, x766₁) (* : uint64_t, uint1_t *) in
+ expr_let x772 := Z.add_with_get_carry(2^64, x771₂, 0, x767₁) (* : uint1_t, uint1_t *) in
+ expr_let x773 := Z.add_with_get_carry(2^64, x772₂, 0, x768₁) (* : uint64_t, uint1_t *) in
+ expr_let x774 := Z.add_with_get_carry(2^64, x773₂, 0, x769₁) (* : uint64_t, uint1_t *) in
+ expr_let x775 := Z.add_with_get_carry(2^64, x774₂, 0, x770₁) (* : uint64_t, uint1_t *) in
+ expr_let x776 := Z.add_with_get_carry(2^64, 0, 0, x771₁) (* : uint64_t, uint1_t *) in
+ expr_let x777 := Z.add_with_get_carry(2^64, x776₂, 0, x772₁) (* : uint1_t, uint1_t *) in
+ expr_let x778 := Z.add_with_get_carry(2^64, x777₂, 0, x773₁) (* : uint64_t, uint1_t *) in
+ expr_let x779 := Z.add_with_get_carry(2^64, x778₂, 0, x774₁) (* : uint64_t, uint1_t *) in
+ expr_let x780 := Z.add_with_get_carry(2^64, x779₂, 0, x775₁) (* : uint64_t, uint1_t *) in
+ expr_let x781 := Z.add_with_get_carry(2^64, 0, 0, x776₁) (* : uint64_t, uint1_t *) in
+ expr_let x782 := Z.add_with_get_carry(2^64, x781₂, 0, x777₁) (* : uint1_t, uint1_t *) in
+ expr_let x783 := Z.add_with_get_carry(2^64, x782₂, 0, x778₁) (* : uint64_t, uint1_t *) in
+ expr_let x784 := Z.add_with_get_carry(2^64, x783₂, 0, x779₁) (* : uint64_t, uint1_t *) in
+ expr_let x785 := Z.add_with_get_carry(2^64, x784₂, 0, x780₁) (* : uint64_t, uint1_t *) in
+ expr_let x786 := Z.add_with_get_carry(2^64, 0, 0, x781₁) (* : uint64_t, uint1_t *) in
+ expr_let x787 := Z.add_with_get_carry(2^64, x786₂, 0, x782₁) (* : uint1_t, uint1_t *) in
+ expr_let x788 := Z.add_with_get_carry(2^64, x787₂, 0, x783₁) (* : uint64_t, uint1_t *) in
+ expr_let x789 := Z.add_with_get_carry(2^64, x788₂, 0, x784₁) (* : uint64_t, uint1_t *) in
+ expr_let x790 := Z.add_with_get_carry(2^64, x789₂, 0, x785₁) (* : uint64_t, uint1_t *) in
+ expr_let x791 := Z.add_with_get_carry(2^64, 0, 0, x786₁) (* : uint64_t, uint1_t *) in
+ expr_let x792 := Z.add_with_get_carry(2^64, x791₂, 0, x787₁) (* : uint1_t, uint1_t *) in
+ expr_let x793 := Z.add_with_get_carry(2^64, x792₂, 0, x788₁) (* : uint64_t, uint1_t *) in
+ expr_let x794 := Z.add_with_get_carry(2^64, x793₂, 0, x789₁) (* : uint64_t, uint1_t *) in
+ expr_let x795 := Z.add_with_get_carry(2^64, x794₂, 0, x790₁) (* : uint64_t, uint1_t *) in
+ expr_let x796 := Z.add_with_get_carry(2^64, 0, 0, x791₁) (* : uint64_t, uint1_t *) in
+ expr_let x797 := Z.add_with_get_carry(2^64, x796₂, 0, x792₁) (* : uint1_t, uint1_t *) in
+ expr_let x798 := Z.add_with_get_carry(2^64, x797₂, 0, x793₁) (* : uint64_t, uint1_t *) in
+ expr_let x799 := Z.add_with_get_carry(2^64, x798₂, 0, x794₁) (* : uint64_t, uint1_t *) in
+ expr_let x800 := Z.add_with_get_carry(2^64, x799₂, 0, x795₁) (* : uint64_t, uint1_t *) in
+ expr_let x801 := Z.add_with_get_carry(2^64, 0, 0, x796₁) (* : uint64_t, uint1_t *) in
+ expr_let x802 := Z.add_with_get_carry(2^64, x801₂, 0, x797₁) (* : uint1_t, uint1_t *) in
+ expr_let x803 := Z.add_with_get_carry(2^64, x802₂, 0, x798₁) (* : uint64_t, uint1_t *) in
+ expr_let x804 := Z.add_with_get_carry(2^64, x803₂, 0, x799₁) (* : uint64_t, uint1_t *) in
+ expr_let x805 := Z.add_with_get_carry(2^64, x804₂, 0, x800₁) (* : uint64_t, uint1_t *) in
+ expr_let x806 := Z.add_with_get_carry(2^64, 0, 0, x801₁) (* : uint64_t, uint1_t *) in
+ expr_let x807 := Z.add_with_get_carry(2^64, x806₂, 0, x802₁) (* : uint1_t, uint1_t *) in
+ expr_let x808 := Z.add_with_get_carry(2^64, x807₂, 0, x803₁) (* : uint64_t, uint1_t *) in
+ expr_let x809 := Z.add_with_get_carry(2^64, x808₂, 0, x804₁) (* : uint64_t, uint1_t *) in
+ expr_let x810 := Z.add_with_get_carry(2^64, x809₂, 0, x805₁) (* : uint64_t, uint1_t *) in
+ expr_let x811 := Z.add_with_get_carry(2^64, 0, 0, x806₁) (* : uint64_t, uint1_t *) in
+ expr_let x812 := Z.add_with_get_carry(2^64, x811₂, 0, x807₁) (* : uint1_t, uint1_t *) in
+ expr_let x813 := Z.add_with_get_carry(2^64, x812₂, 0, x808₁) (* : uint64_t, uint1_t *) in
+ expr_let x814 := Z.add_with_get_carry(2^64, x813₂, 0, x809₁) (* : uint64_t, uint1_t *) in
+ expr_let x815 := Z.add_with_get_carry(2^64, x814₂, 0, x810₁) (* : uint64_t, uint1_t *) in
+ expr_let x816 := Z.add_with_get_carry(2^64, 0, 0, x811₁) (* : uint64_t, uint1_t *) in
+ expr_let x817 := Z.add_with_get_carry(2^64, x816₂, 0, x812₁) (* : uint1_t, uint1_t *) in
+ expr_let x818 := Z.add_with_get_carry(2^64, x817₂, 0, x813₁) (* : uint64_t, uint1_t *) in
+ expr_let x819 := Z.add_with_get_carry(2^64, x818₂, 0, x814₁) (* : uint64_t, uint1_t *) in
+ expr_let x820 := Z.add_with_get_carry(2^64, x819₂, 0, x815₁) (* : uint64_t, uint1_t *) in
+ expr_let x821 := Z.add_with_get_carry(2^64, 0, 0, x816₁) (* : uint64_t, uint1_t *) in
+ expr_let x822 := Z.add_with_get_carry(2^64, x821₂, 0, x817₁) (* : uint1_t, uint1_t *) in
+ expr_let x823 := Z.add_with_get_carry(2^64, x822₂, 0, x818₁) (* : uint64_t, uint1_t *) in
+ expr_let x824 := Z.add_with_get_carry(2^64, x823₂, 0, x819₁) (* : uint64_t, uint1_t *) in
+ expr_let x825 := Z.add_with_get_carry(2^64, x824₂, 0, x820₁) (* : uint64_t, uint1_t *) in
+ expr_let x826 := Z.add_with_get_carry(2^64, 0, 0, x821₁) (* : uint64_t, uint1_t *) in
+ expr_let x827 := Z.add_with_get_carry(2^64, x826₂, 0, x822₁) (* : uint1_t, uint1_t *) in
+ expr_let x828 := Z.add_with_get_carry(2^64, x827₂, 0, x823₁) (* : uint64_t, uint1_t *) in
+ expr_let x829 := Z.add_with_get_carry(2^64, x828₂, 0, x824₁) (* : uint64_t, uint1_t *) in
+ expr_let x830 := Z.add_with_get_carry(2^64, x829₂, 0, x825₁) (* : uint64_t, uint1_t *) in
+ expr_let x831 := Z.add_with_get_carry(2^64, 0, 0, x826₁) (* : uint64_t, uint1_t *) in
+ expr_let x832 := Z.add_with_get_carry(2^64, x831₂, 0, x827₁) (* : uint1_t, uint1_t *) in
+ expr_let x833 := Z.add_with_get_carry(2^64, x832₂, 0, x828₁) (* : uint64_t, uint1_t *) in
+ expr_let x834 := Z.add_with_get_carry(2^64, x833₂, 0, x829₁) (* : uint64_t, uint1_t *) in
+ expr_let x835 := Z.add_with_get_carry(2^64, x834₂, 0, x830₁) (* : uint64_t, uint1_t *) in
+ expr_let x836 := Z.add_with_get_carry(2^64, 0, 0, x831₁) (* : uint64_t, uint1_t *) in
+ expr_let x837 := Z.add_with_get_carry(2^64, x836₂, x763, x832₁) (* : uint64_t, uint1_t *) in
+ expr_let x838 := Z.add_with_get_carry(2^64, x837₂, x761, x833₁) (* : uint64_t, uint1_t *) in
+ expr_let x839 := Z.add_with_get_carry(2^64, x838₂, x759, x834₁) (* : uint64_t, uint1_t *) in
+ expr_let x840 := Z.add_with_get_carry(2^64, x839₂, 0, x835₁) (* : uint64_t, uint1_t *) in
+ expr_let x841 := Z.add_with_get_carry(2^64, 0, x836₁, x748₁) (* : uint64_t, uint1_t *) in
+ expr_let x842 := Z.add_with_get_carry(2^64, x841₂, x837₁, x749₁) (* : uint64_t, uint1_t *) in
+ expr_let x843 := Z.add_with_get_carry(2^64, x842₂, x838₁, x750₁) (* : uint64_t, uint1_t *) in
+ expr_let x844 := Z.add_with_get_carry(2^64, x843₂, x839₁, x751₁) (* : uint64_t, uint1_t *) in
+ expr_let x845 := Z.add_with_get_carry(2^64, x844₂, x840₁, x752₁) (* : uint64_t, uint1_t *) in
+ expr_let x846 := Z.add_with_get_carry(2^64, x845₂, 0, x752₂) (* : uint64_t, uint1_t *) in
+ expr_let x847 := Z.add_with_get_carry(2^64, 0, -1, x842₁) (* : uint64_t, int1_t *) in
+ expr_let x848 := Z.add_with_get_carry(2^64, x847₂, -0xffffffff00000000, x843₁) (* : uint64_t, int1_t *) in
+ expr_let x849 := Z.add_with_get_carry(2^64, x848₂, -(2^64-1), x844₁) (* : uint64_t, int1_t *) in
+ expr_let x850 := Z.add_with_get_carry(2^64, x849₂, -(2^32-1), x845₁) (* : uint64_t, int1_t *) in
+ expr_let x851 := Z.add_with_get_carry(2^64, x850₂, 0, x846₁) (* : uint64_t, int1_t *) in
+ expr_let x852 := Z.zselect((-x851₂), x847₁, x842₁) (* : uint64_t *) in
+ expr_let x853 := Z.zselect((-x851₂), x848₁, x843₁) (* : uint64_t *) in
+ expr_let x854 := Z.zselect((-x851₂), x849₁, x844₁) (* : uint64_t *) in
+ expr_let x855 := Z.zselect((-x851₂), x850₁, x845₁) (* : uint64_t *) in
+ x852 :: x853 :: x854 :: x855 :: []
+)
+Error in converting fiat_p224_mul to C:
+Invalid identifier in arithmetic expression Z.mul_split
-/*
- * Input Bounds:
- * arg1: [0x0 ~> 0xffffffffffffffff]
- * arg2: [0x0 ~> 0xffffffffffffffff]
- * Output Bounds:
- * out1: [0x0 ~> 0xffffffffffffffff]
- * out2: [0x0 ~> 0xffffffffffffffff]
- */
-static void fiat_p224_mulx_u64(uint64_t* out1, uint64_t* out2, uint64_t arg1, uint64_t arg2) {
- fiat_p224_uint128 x1 = ((fiat_p224_uint128)arg1 * arg2);
- uint64_t x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
- uint64_t x3 = (uint64_t)(x1 >> 64);
- *out1 = x2;
- *out2 = x3;
-}
-/*
- * Input Bounds:
- * arg1: [0x0 ~> 0x1]
- * arg2: [0x0 ~> 0xffffffffffffffff]
- * arg3: [0x0 ~> 0xffffffffffffffff]
- * Output Bounds:
- * out1: [0x0 ~> 0xffffffffffffffff]
- */
-static void fiat_p224_cmovznz_u64(uint64_t* out1, fiat_p224_uint1 arg1, uint64_t arg2, uint64_t arg3) {
- fiat_p224_uint1 x1 = (!(!arg1));
- uint64_t x2 = ((fiat_p224_int1)(0x0 - x1) & UINT64_C(0xffffffffffffffff));
- uint64_t x3 = ((x2 & arg3) | (uint64_t)((fiat_p224_uint128)(~x2) & arg2));
- *out1 = x3;
-}
+In fiat_p224_square:
+Stringification failed on the syntax tree:
+(λ x1,
+ expr_let x2 := x1[1] (* : uint64_t *) in
+ expr_let x3 := x1[2] (* : uint64_t *) in
+ expr_let x4 := x1[3] (* : uint64_t *) in
+ expr_let x5 := x1[0] (* : uint64_t *) in
+ expr_let x6 := Z.mul_split(2^64, x5, x1[3]) (* : uint64_t, uint64_t *) in
+ expr_let x7 := Z.mul_split(2^64, x5, x1[2]) (* : uint64_t, uint64_t *) in
+ expr_let x8 := Z.mul_split(2^64, x5, x1[1]) (* : uint64_t, uint64_t *) in
+ expr_let x9 := Z.mul_split(2^64, x5, x1[0]) (* : uint64_t, uint64_t *) in
+ expr_let x10 := 2^192 * 0 (* : uint1_t *) in
+ expr_let x11 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x12 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x13 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x14 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x15 := 1 * 0 (* : uint1_t *) in
+ expr_let x16 := 1 * 0 (* : uint1_t *) in
+ expr_let x17 := 1 * 0 (* : uint1_t *) in
+ expr_let x18 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x19 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x20 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x21 := 1 * 0 (* : uint1_t *) in
+ expr_let x22 := 1 * 0 (* : uint1_t *) in
+ expr_let x23 := 1 * 0 (* : uint1_t *) in
+ expr_let x24 := 1 * 0 (* : uint1_t *) in
+ expr_let x25 := 1 * 0 (* : uint1_t *) in
+ expr_let x26 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x27 := 1 * 0 (* : uint1_t *) in
+ expr_let x28 := 1 * 0 (* : uint1_t *) in
+ expr_let x29 := 1 * 0 (* : uint1_t *) in
+ expr_let x30 := 1 * 0 (* : uint1_t *) in
+ expr_let x31 := 1 * 0 (* : uint1_t *) in
+ expr_let x32 := 1 * 0 (* : uint1_t *) in
+ expr_let x33 := 1 * 0 (* : uint1_t *) in
+ expr_let x34 := x6₂ * 1 (* : uint64_t *) in
+ expr_let x35 := x6₁ * 1 (* : uint64_t *) in
+ expr_let x36 := x7₂ * 1 (* : uint64_t *) in
+ expr_let x37 := x7₁ * 1 (* : uint64_t *) in
+ expr_let x38 := x8₂ * 1 (* : uint64_t *) in
+ expr_let x39 := x8₁ * 1 (* : uint64_t *) in
+ expr_let x40 := x9₂ * 1 (* : uint64_t *) in
+ expr_let x41 := x9₁ * 1 (* : uint64_t *) in
+ expr_let x42 := Z.add_with_get_carry(2^64, 0, 0, x41) (* : uint64_t, uint1_t *) in
+ expr_let x43 := Z.add_with_get_carry(2^64, x42₂, 0, x40) (* : uint64_t, uint1_t *) in
+ expr_let x44 := Z.add_with_get_carry(2^64, x43₂, 0, x38) (* : uint64_t, uint1_t *) in
+ expr_let x45 := Z.add_with_get_carry(2^64, x44₂, 0, x36) (* : uint64_t, uint1_t *) in
+ expr_let x46 := Z.add_with_get_carry(2^64, x45₂, x10, x34) (* : uint64_t, uint1_t *) in
+ expr_let x47 := Z.add_with_get_carry(2^64, 0, 0, x42₁) (* : uint64_t, uint1_t *) in
+ expr_let x48 := Z.add_with_get_carry(2^64, x47₂, 0, x43₁) (* : uint64_t, uint1_t *) in
+ expr_let x49 := Z.add_with_get_carry(2^64, x48₂, 0, x44₁) (* : uint64_t, uint1_t *) in
+ expr_let x50 := Z.add_with_get_carry(2^64, x49₂, 0, x45₁) (* : uint64_t, uint1_t *) in
+ expr_let x51 := Z.add_with_get_carry(2^64, x50₂, x11, x46₁) (* : uint64_t, uint1_t *) in
+ expr_let x52 := Z.add_with_get_carry(2^64, 0, 0, x47₁) (* : uint64_t, uint1_t *) in
+ expr_let x53 := Z.add_with_get_carry(2^64, x52₂, 0, x48₁) (* : uint64_t, uint1_t *) in
+ expr_let x54 := Z.add_with_get_carry(2^64, x53₂, 0, x49₁) (* : uint64_t, uint1_t *) in
+ expr_let x55 := Z.add_with_get_carry(2^64, x54₂, 0, x50₁) (* : uint64_t, uint1_t *) in
+ expr_let x56 := Z.add_with_get_carry(2^64, x55₂, x12, x51₁) (* : uint64_t, uint1_t *) in
+ expr_let x57 := Z.add_with_get_carry(2^64, 0, 0, x52₁) (* : uint64_t, uint1_t *) in
+ expr_let x58 := Z.add_with_get_carry(2^64, x57₂, 0, x53₁) (* : uint64_t, uint1_t *) in
+ expr_let x59 := Z.add_with_get_carry(2^64, x58₂, 0, x54₁) (* : uint64_t, uint1_t *) in
+ expr_let x60 := Z.add_with_get_carry(2^64, x59₂, 0, x55₁) (* : uint64_t, uint1_t *) in
+ expr_let x61 := Z.add_with_get_carry(2^64, x60₂, x13, x56₁) (* : uint64_t, uint1_t *) in
+ expr_let x62 := Z.add_with_get_carry(2^64, 0, 0, x57₁) (* : uint64_t, uint1_t *) in
+ expr_let x63 := Z.add_with_get_carry(2^64, x62₂, 0, x58₁) (* : uint64_t, uint1_t *) in
+ expr_let x64 := Z.add_with_get_carry(2^64, x63₂, 0, x59₁) (* : uint64_t, uint1_t *) in
+ expr_let x65 := Z.add_with_get_carry(2^64, x64₂, 0, x60₁) (* : uint64_t, uint1_t *) in
+ expr_let x66 := Z.add_with_get_carry(2^64, x65₂, x14, x61₁) (* : uint64_t, uint1_t *) in
+ expr_let x67 := Z.add_with_get_carry(2^64, 0, 0, x62₁) (* : uint64_t, uint1_t *) in
+ expr_let x68 := Z.add_with_get_carry(2^64, x67₂, 0, x63₁) (* : uint64_t, uint1_t *) in
+ expr_let x69 := Z.add_with_get_carry(2^64, x68₂, 0, x64₁) (* : uint64_t, uint1_t *) in
+ expr_let x70 := Z.add_with_get_carry(2^64, x69₂, 0, x65₁) (* : uint64_t, uint1_t *) in
+ expr_let x71 := Z.add_with_get_carry(2^64, x70₂, x15, x66₁) (* : uint64_t, uint1_t *) in
+ expr_let x72 := Z.add_with_get_carry(2^64, 0, 0, x67₁) (* : uint64_t, uint1_t *) in
+ expr_let x73 := Z.add_with_get_carry(2^64, x72₂, 0, x68₁) (* : uint64_t, uint1_t *) in
+ expr_let x74 := Z.add_with_get_carry(2^64, x73₂, 0, x69₁) (* : uint64_t, uint1_t *) in
+ expr_let x75 := Z.add_with_get_carry(2^64, x74₂, 0, x70₁) (* : uint64_t, uint1_t *) in
+ expr_let x76 := Z.add_with_get_carry(2^64, x75₂, x16, x71₁) (* : uint64_t, uint1_t *) in
+ expr_let x77 := Z.add_with_get_carry(2^64, 0, 0, x72₁) (* : uint64_t, uint1_t *) in
+ expr_let x78 := Z.add_with_get_carry(2^64, x77₂, 0, x73₁) (* : uint64_t, uint1_t *) in
+ expr_let x79 := Z.add_with_get_carry(2^64, x78₂, 0, x74₁) (* : uint64_t, uint1_t *) in
+ expr_let x80 := Z.add_with_get_carry(2^64, x79₂, 0, x75₁) (* : uint64_t, uint1_t *) in
+ expr_let x81 := Z.add_with_get_carry(2^64, x80₂, x18, x76₁) (* : uint64_t, uint1_t *) in
+ expr_let x82 := Z.add_with_get_carry(2^64, 0, 0, x77₁) (* : uint64_t, uint1_t *) in
+ expr_let x83 := Z.add_with_get_carry(2^64, x82₂, 0, x78₁) (* : uint64_t, uint1_t *) in
+ expr_let x84 := Z.add_with_get_carry(2^64, x83₂, 0, x79₁) (* : uint64_t, uint1_t *) in
+ expr_let x85 := Z.add_with_get_carry(2^64, x84₂, 0, x80₁) (* : uint64_t, uint1_t *) in
+ expr_let x86 := Z.add_with_get_carry(2^64, x85₂, x19, x81₁) (* : uint64_t, uint1_t *) in
+ expr_let x87 := Z.add_with_get_carry(2^64, 0, 0, x82₁) (* : uint64_t, uint1_t *) in
+ expr_let x88 := Z.add_with_get_carry(2^64, x87₂, 0, x83₁) (* : uint64_t, uint1_t *) in
+ expr_let x89 := Z.add_with_get_carry(2^64, x88₂, 0, x84₁) (* : uint64_t, uint1_t *) in
+ expr_let x90 := Z.add_with_get_carry(2^64, x89₂, x17, x85₁) (* : uint64_t, uint1_t *) in
+ expr_let x91 := Z.add_with_get_carry(2^64, x90₂, x20, x86₁) (* : uint64_t, uint1_t *) in
+ expr_let x92 := Z.add_with_get_carry(2^64, 0, 0, x87₁) (* : uint64_t, uint1_t *) in
+ expr_let x93 := Z.add_with_get_carry(2^64, x92₂, 0, x88₁) (* : uint64_t, uint1_t *) in
+ expr_let x94 := Z.add_with_get_carry(2^64, x93₂, 0, x89₁) (* : uint64_t, uint1_t *) in
+ expr_let x95 := Z.add_with_get_carry(2^64, x94₂, x23, x90₁) (* : uint64_t, uint1_t *) in
+ expr_let x96 := Z.add_with_get_carry(2^64, x95₂, x21, x91₁) (* : uint64_t, uint1_t *) in
+ expr_let x97 := Z.add_with_get_carry(2^64, 0, 0, x92₁) (* : uint64_t, uint1_t *) in
+ expr_let x98 := Z.add_with_get_carry(2^64, x97₂, 0, x93₁) (* : uint64_t, uint1_t *) in
+ expr_let x99 := Z.add_with_get_carry(2^64, x98₂, x25, x94₁) (* : uint64_t, uint1_t *) in
+ expr_let x100 := Z.add_with_get_carry(2^64, x99₂, x24, x95₁) (* : uint64_t, uint1_t *) in
+ expr_let x101 := Z.add_with_get_carry(2^64, x100₂, x22, x96₁) (* : uint64_t, uint1_t *) in
+ expr_let x102 := Z.add_with_get_carry(2^64, 0, 0, x97₁) (* : uint64_t, uint1_t *) in
+ expr_let x103 := Z.add_with_get_carry(2^64, x102₂, 0, x98₁) (* : uint64_t, uint1_t *) in
+ expr_let x104 := Z.add_with_get_carry(2^64, x103₂, x31, x99₁) (* : uint64_t, uint1_t *) in
+ expr_let x105 := Z.add_with_get_carry(2^64, x104₂, x29, x100₁) (* : uint64_t, uint1_t *) in
+ expr_let x106 := Z.add_with_get_carry(2^64, x105₂, x26, x101₁) (* : uint64_t, uint1_t *) in
+ expr_let x107 := Z.add_with_get_carry(2^64, 0, 0, x102₁) (* : uint64_t, uint1_t *) in
+ expr_let x108 := Z.add_with_get_carry(2^64, x107₂, x33, x103₁) (* : uint64_t, uint1_t *) in
+ expr_let x109 := Z.add_with_get_carry(2^64, x108₂, x32, x104₁) (* : uint64_t, uint1_t *) in
+ expr_let x110 := Z.add_with_get_carry(2^64, x109₂, x30, x105₁) (* : uint64_t, uint1_t *) in
+ expr_let x111 := Z.add_with_get_carry(2^64, x110₂, x27, x106₁) (* : uint64_t, uint1_t *) in
+ expr_let x112 := Z.add_with_get_carry(2^64, 0, 0, x107₁) (* : uint64_t, uint1_t *) in
+ expr_let x113 := Z.add_with_get_carry(2^64, x112₂, x39, x108₁) (* : uint64_t, uint1_t *) in
+ expr_let x114 := Z.add_with_get_carry(2^64, x113₂, x37, x109₁) (* : uint64_t, uint1_t *) in
+ expr_let x115 := Z.add_with_get_carry(2^64, x114₂, x35, x110₁) (* : uint64_t, uint1_t *) in
+ expr_let x116 := Z.add_with_get_carry(2^64, x115₂, x28, x111₁) (* : uint64_t, uint1_t *) in
+ expr_let x117 := Z.add_with_get_carry(2^64, 0, x112₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x118 := Z.add_with_get_carry(2^64, x117₂, x113₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x119 := Z.add_with_get_carry(2^64, x118₂, x114₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x120 := Z.add_with_get_carry(2^64, x119₂, x115₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x121 := Z.add_with_get_carry(2^64, x120₂, x116₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x122 := (Z.mul_split(2^64, x117₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x123 := Z.mul_split(2^64, x122, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x124 := Z.mul_split(2^64, x122, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x125 := Z.mul_split(2^64, x122, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x126 := Z.mul_split(2^64, x122, 1) (* : uint64_t, uint1_t *) in
+ expr_let x127 := x123₂ * 1 (* : uint64_t *) in
+ expr_let x128 := x123₁ * 1 (* : uint64_t *) in
+ expr_let x129 := x124₂ * 1 (* : uint64_t *) in
+ expr_let x130 := x124₁ * 1 (* : uint64_t *) in
+ expr_let x131 := x125₂ * 1 (* : uint64_t *) in
+ expr_let x132 := x125₁ * 1 (* : uint64_t *) in
+ expr_let x133 := x126₂ * 1 (* : uint1_t *) in
+ expr_let x134 := x126₁ * 1 (* : uint64_t *) in
+ expr_let x135 := Z.add_with_get_carry(2^64, 0, 0, x134) (* : uint64_t, uint1_t *) in
+ expr_let x136 := Z.add_with_get_carry(2^64, x135₂, 0, x133) (* : uint1_t, uint1_t *) in
+ expr_let x137 := Z.add_with_get_carry(2^64, x136₂, 0, x131) (* : uint64_t, uint1_t *) in
+ expr_let x138 := Z.add_with_get_carry(2^64, x137₂, 0, x129) (* : uint64_t, uint1_t *) in
+ expr_let x139 := Z.add_with_get_carry(2^64, x138₂, 0, x127) (* : uint64_t, uint1_t *) in
+ expr_let x140 := Z.add_with_get_carry(2^64, 0, 0, x135₁) (* : uint64_t, uint1_t *) in
+ expr_let x141 := Z.add_with_get_carry(2^64, x140₂, 0, x136₁) (* : uint1_t, uint1_t *) in
+ expr_let x142 := Z.add_with_get_carry(2^64, x141₂, 0, x137₁) (* : uint64_t, uint1_t *) in
+ expr_let x143 := Z.add_with_get_carry(2^64, x142₂, 0, x138₁) (* : uint64_t, uint1_t *) in
+ expr_let x144 := Z.add_with_get_carry(2^64, x143₂, 0, x139₁) (* : uint64_t, uint1_t *) in
+ expr_let x145 := Z.add_with_get_carry(2^64, 0, 0, x140₁) (* : uint64_t, uint1_t *) in
+ expr_let x146 := Z.add_with_get_carry(2^64, x145₂, 0, x141₁) (* : uint1_t, uint1_t *) in
+ expr_let x147 := Z.add_with_get_carry(2^64, x146₂, 0, x142₁) (* : uint64_t, uint1_t *) in
+ expr_let x148 := Z.add_with_get_carry(2^64, x147₂, 0, x143₁) (* : uint64_t, uint1_t *) in
+ expr_let x149 := Z.add_with_get_carry(2^64, x148₂, 0, x144₁) (* : uint64_t, uint1_t *) in
+ expr_let x150 := Z.add_with_get_carry(2^64, 0, 0, x145₁) (* : uint64_t, uint1_t *) in
+ expr_let x151 := Z.add_with_get_carry(2^64, x150₂, 0, x146₁) (* : uint1_t, uint1_t *) in
+ expr_let x152 := Z.add_with_get_carry(2^64, x151₂, 0, x147₁) (* : uint64_t, uint1_t *) in
+ expr_let x153 := Z.add_with_get_carry(2^64, x152₂, 0, x148₁) (* : uint64_t, uint1_t *) in
+ expr_let x154 := Z.add_with_get_carry(2^64, x153₂, 0, x149₁) (* : uint64_t, uint1_t *) in
+ expr_let x155 := Z.add_with_get_carry(2^64, 0, 0, x150₁) (* : uint64_t, uint1_t *) in
+ expr_let x156 := Z.add_with_get_carry(2^64, x155₂, 0, x151₁) (* : uint1_t, uint1_t *) in
+ expr_let x157 := Z.add_with_get_carry(2^64, x156₂, 0, x152₁) (* : uint64_t, uint1_t *) in
+ expr_let x158 := Z.add_with_get_carry(2^64, x157₂, 0, x153₁) (* : uint64_t, uint1_t *) in
+ expr_let x159 := Z.add_with_get_carry(2^64, x158₂, 0, x154₁) (* : uint64_t, uint1_t *) in
+ expr_let x160 := Z.add_with_get_carry(2^64, 0, 0, x155₁) (* : uint64_t, uint1_t *) in
+ expr_let x161 := Z.add_with_get_carry(2^64, x160₂, 0, x156₁) (* : uint1_t, uint1_t *) in
+ expr_let x162 := Z.add_with_get_carry(2^64, x161₂, 0, x157₁) (* : uint64_t, uint1_t *) in
+ expr_let x163 := Z.add_with_get_carry(2^64, x162₂, 0, x158₁) (* : uint64_t, uint1_t *) in
+ expr_let x164 := Z.add_with_get_carry(2^64, x163₂, 0, x159₁) (* : uint64_t, uint1_t *) in
+ expr_let x165 := Z.add_with_get_carry(2^64, 0, 0, x160₁) (* : uint64_t, uint1_t *) in
+ expr_let x166 := Z.add_with_get_carry(2^64, x165₂, 0, x161₁) (* : uint1_t, uint1_t *) in
+ expr_let x167 := Z.add_with_get_carry(2^64, x166₂, 0, x162₁) (* : uint64_t, uint1_t *) in
+ expr_let x168 := Z.add_with_get_carry(2^64, x167₂, 0, x163₁) (* : uint64_t, uint1_t *) in
+ expr_let x169 := Z.add_with_get_carry(2^64, x168₂, 0, x164₁) (* : uint64_t, uint1_t *) in
+ expr_let x170 := Z.add_with_get_carry(2^64, 0, 0, x165₁) (* : uint64_t, uint1_t *) in
+ expr_let x171 := Z.add_with_get_carry(2^64, x170₂, 0, x166₁) (* : uint1_t, uint1_t *) in
+ expr_let x172 := Z.add_with_get_carry(2^64, x171₂, 0, x167₁) (* : uint64_t, uint1_t *) in
+ expr_let x173 := Z.add_with_get_carry(2^64, x172₂, 0, x168₁) (* : uint64_t, uint1_t *) in
+ expr_let x174 := Z.add_with_get_carry(2^64, x173₂, 0, x169₁) (* : uint64_t, uint1_t *) in
+ expr_let x175 := Z.add_with_get_carry(2^64, 0, 0, x170₁) (* : uint64_t, uint1_t *) in
+ expr_let x176 := Z.add_with_get_carry(2^64, x175₂, 0, x171₁) (* : uint1_t, uint1_t *) in
+ expr_let x177 := Z.add_with_get_carry(2^64, x176₂, 0, x172₁) (* : uint64_t, uint1_t *) in
+ expr_let x178 := Z.add_with_get_carry(2^64, x177₂, 0, x173₁) (* : uint64_t, uint1_t *) in
+ expr_let x179 := Z.add_with_get_carry(2^64, x178₂, 0, x174₁) (* : uint64_t, uint1_t *) in
+ expr_let x180 := Z.add_with_get_carry(2^64, 0, 0, x175₁) (* : uint64_t, uint1_t *) in
+ expr_let x181 := Z.add_with_get_carry(2^64, x180₂, 0, x176₁) (* : uint1_t, uint1_t *) in
+ expr_let x182 := Z.add_with_get_carry(2^64, x181₂, 0, x177₁) (* : uint64_t, uint1_t *) in
+ expr_let x183 := Z.add_with_get_carry(2^64, x182₂, 0, x178₁) (* : uint64_t, uint1_t *) in
+ expr_let x184 := Z.add_with_get_carry(2^64, x183₂, 0, x179₁) (* : uint64_t, uint1_t *) in
+ expr_let x185 := Z.add_with_get_carry(2^64, 0, 0, x180₁) (* : uint64_t, uint1_t *) in
+ expr_let x186 := Z.add_with_get_carry(2^64, x185₂, 0, x181₁) (* : uint1_t, uint1_t *) in
+ expr_let x187 := Z.add_with_get_carry(2^64, x186₂, 0, x182₁) (* : uint64_t, uint1_t *) in
+ expr_let x188 := Z.add_with_get_carry(2^64, x187₂, 0, x183₁) (* : uint64_t, uint1_t *) in
+ expr_let x189 := Z.add_with_get_carry(2^64, x188₂, 0, x184₁) (* : uint64_t, uint1_t *) in
+ expr_let x190 := Z.add_with_get_carry(2^64, 0, 0, x185₁) (* : uint64_t, uint1_t *) in
+ expr_let x191 := Z.add_with_get_carry(2^64, x190₂, 0, x186₁) (* : uint1_t, uint1_t *) in
+ expr_let x192 := Z.add_with_get_carry(2^64, x191₂, 0, x187₁) (* : uint64_t, uint1_t *) in
+ expr_let x193 := Z.add_with_get_carry(2^64, x192₂, 0, x188₁) (* : uint64_t, uint1_t *) in
+ expr_let x194 := Z.add_with_get_carry(2^64, x193₂, 0, x189₁) (* : uint64_t, uint1_t *) in
+ expr_let x195 := Z.add_with_get_carry(2^64, 0, 0, x190₁) (* : uint64_t, uint1_t *) in
+ expr_let x196 := Z.add_with_get_carry(2^64, x195₂, 0, x191₁) (* : uint1_t, uint1_t *) in
+ expr_let x197 := Z.add_with_get_carry(2^64, x196₂, 0, x192₁) (* : uint64_t, uint1_t *) in
+ expr_let x198 := Z.add_with_get_carry(2^64, x197₂, 0, x193₁) (* : uint64_t, uint1_t *) in
+ expr_let x199 := Z.add_with_get_carry(2^64, x198₂, 0, x194₁) (* : uint64_t, uint1_t *) in
+ expr_let x200 := Z.add_with_get_carry(2^64, 0, 0, x195₁) (* : uint64_t, uint1_t *) in
+ expr_let x201 := Z.add_with_get_carry(2^64, x200₂, 0, x196₁) (* : uint1_t, uint1_t *) in
+ expr_let x202 := Z.add_with_get_carry(2^64, x201₂, 0, x197₁) (* : uint64_t, uint1_t *) in
+ expr_let x203 := Z.add_with_get_carry(2^64, x202₂, 0, x198₁) (* : uint64_t, uint1_t *) in
+ expr_let x204 := Z.add_with_get_carry(2^64, x203₂, 0, x199₁) (* : uint64_t, uint1_t *) in
+ expr_let x205 := Z.add_with_get_carry(2^64, 0, 0, x200₁) (* : uint64_t, uint1_t *) in
+ expr_let x206 := Z.add_with_get_carry(2^64, x205₂, x132, x201₁) (* : uint64_t, uint1_t *) in
+ expr_let x207 := Z.add_with_get_carry(2^64, x206₂, x130, x202₁) (* : uint64_t, uint1_t *) in
+ expr_let x208 := Z.add_with_get_carry(2^64, x207₂, x128, x203₁) (* : uint64_t, uint1_t *) in
+ expr_let x209 := Z.add_with_get_carry(2^64, x208₂, 0, x204₁) (* : uint64_t, uint1_t *) in
+ expr_let x210 := Z.add_with_get_carry(2^64, 0, x205₁, x117₁) (* : uint64_t, uint1_t *) in
+ expr_let x211 := Z.add_with_get_carry(2^64, x210₂, x206₁, x118₁) (* : uint64_t, uint1_t *) in
+ expr_let x212 := Z.add_with_get_carry(2^64, x211₂, x207₁, x119₁) (* : uint64_t, uint1_t *) in
+ expr_let x213 := Z.add_with_get_carry(2^64, x212₂, x208₁, x120₁) (* : uint64_t, uint1_t *) in
+ expr_let x214 := Z.add_with_get_carry(2^64, x213₂, x209₁, x121₁) (* : uint64_t, uint1_t *) in
+ expr_let x215 := Z.add_with_get_carry(2^64, x214₂, 0, x121₂) (* : uint1_t, uint1_t *) in
+ expr_let x216 := Z.mul_split(2^64, x2, x1[3]) (* : uint64_t, uint64_t *) in
+ expr_let x217 := Z.mul_split(2^64, x2, x1[2]) (* : uint64_t, uint64_t *) in
+ expr_let x218 := Z.mul_split(2^64, x2, x1[1]) (* : uint64_t, uint64_t *) in
+ expr_let x219 := Z.mul_split(2^64, x2, x1[0]) (* : uint64_t, uint64_t *) in
+ expr_let x220 := 2^192 * 0 (* : uint1_t *) in
+ expr_let x221 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x222 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x223 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x224 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x225 := 1 * 0 (* : uint1_t *) in
+ expr_let x226 := 1 * 0 (* : uint1_t *) in
+ expr_let x227 := 1 * 0 (* : uint1_t *) in
+ expr_let x228 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x229 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x230 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x231 := 1 * 0 (* : uint1_t *) in
+ expr_let x232 := 1 * 0 (* : uint1_t *) in
+ expr_let x233 := 1 * 0 (* : uint1_t *) in
+ expr_let x234 := 1 * 0 (* : uint1_t *) in
+ expr_let x235 := 1 * 0 (* : uint1_t *) in
+ expr_let x236 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x237 := 1 * 0 (* : uint1_t *) in
+ expr_let x238 := 1 * 0 (* : uint1_t *) in
+ expr_let x239 := 1 * 0 (* : uint1_t *) in
+ expr_let x240 := 1 * 0 (* : uint1_t *) in
+ expr_let x241 := 1 * 0 (* : uint1_t *) in
+ expr_let x242 := 1 * 0 (* : uint1_t *) in
+ expr_let x243 := 1 * 0 (* : uint1_t *) in
+ expr_let x244 := x216₂ * 1 (* : uint64_t *) in
+ expr_let x245 := x216₁ * 1 (* : uint64_t *) in
+ expr_let x246 := x217₂ * 1 (* : uint64_t *) in
+ expr_let x247 := x217₁ * 1 (* : uint64_t *) in
+ expr_let x248 := x218₂ * 1 (* : uint64_t *) in
+ expr_let x249 := x218₁ * 1 (* : uint64_t *) in
+ expr_let x250 := x219₂ * 1 (* : uint64_t *) in
+ expr_let x251 := x219₁ * 1 (* : uint64_t *) in
+ expr_let x252 := Z.add_with_get_carry(2^64, 0, 0, x251) (* : uint64_t, uint1_t *) in
+ expr_let x253 := Z.add_with_get_carry(2^64, x252₂, 0, x250) (* : uint64_t, uint1_t *) in
+ expr_let x254 := Z.add_with_get_carry(2^64, x253₂, 0, x248) (* : uint64_t, uint1_t *) in
+ expr_let x255 := Z.add_with_get_carry(2^64, x254₂, 0, x246) (* : uint64_t, uint1_t *) in
+ expr_let x256 := Z.add_with_get_carry(2^64, x255₂, x220, x244) (* : uint64_t, uint1_t *) in
+ expr_let x257 := Z.add_with_get_carry(2^64, 0, 0, x252₁) (* : uint64_t, uint1_t *) in
+ expr_let x258 := Z.add_with_get_carry(2^64, x257₂, 0, x253₁) (* : uint64_t, uint1_t *) in
+ expr_let x259 := Z.add_with_get_carry(2^64, x258₂, 0, x254₁) (* : uint64_t, uint1_t *) in
+ expr_let x260 := Z.add_with_get_carry(2^64, x259₂, 0, x255₁) (* : uint64_t, uint1_t *) in
+ expr_let x261 := Z.add_with_get_carry(2^64, x260₂, x221, x256₁) (* : uint64_t, uint1_t *) in
+ expr_let x262 := Z.add_with_get_carry(2^64, 0, 0, x257₁) (* : uint64_t, uint1_t *) in
+ expr_let x263 := Z.add_with_get_carry(2^64, x262₂, 0, x258₁) (* : uint64_t, uint1_t *) in
+ expr_let x264 := Z.add_with_get_carry(2^64, x263₂, 0, x259₁) (* : uint64_t, uint1_t *) in
+ expr_let x265 := Z.add_with_get_carry(2^64, x264₂, 0, x260₁) (* : uint64_t, uint1_t *) in
+ expr_let x266 := Z.add_with_get_carry(2^64, x265₂, x222, x261₁) (* : uint64_t, uint1_t *) in
+ expr_let x267 := Z.add_with_get_carry(2^64, 0, 0, x262₁) (* : uint64_t, uint1_t *) in
+ expr_let x268 := Z.add_with_get_carry(2^64, x267₂, 0, x263₁) (* : uint64_t, uint1_t *) in
+ expr_let x269 := Z.add_with_get_carry(2^64, x268₂, 0, x264₁) (* : uint64_t, uint1_t *) in
+ expr_let x270 := Z.add_with_get_carry(2^64, x269₂, 0, x265₁) (* : uint64_t, uint1_t *) in
+ expr_let x271 := Z.add_with_get_carry(2^64, x270₂, x223, x266₁) (* : uint64_t, uint1_t *) in
+ expr_let x272 := Z.add_with_get_carry(2^64, 0, 0, x267₁) (* : uint64_t, uint1_t *) in
+ expr_let x273 := Z.add_with_get_carry(2^64, x272₂, 0, x268₁) (* : uint64_t, uint1_t *) in
+ expr_let x274 := Z.add_with_get_carry(2^64, x273₂, 0, x269₁) (* : uint64_t, uint1_t *) in
+ expr_let x275 := Z.add_with_get_carry(2^64, x274₂, 0, x270₁) (* : uint64_t, uint1_t *) in
+ expr_let x276 := Z.add_with_get_carry(2^64, x275₂, x224, x271₁) (* : uint64_t, uint1_t *) in
+ expr_let x277 := Z.add_with_get_carry(2^64, 0, 0, x272₁) (* : uint64_t, uint1_t *) in
+ expr_let x278 := Z.add_with_get_carry(2^64, x277₂, 0, x273₁) (* : uint64_t, uint1_t *) in
+ expr_let x279 := Z.add_with_get_carry(2^64, x278₂, 0, x274₁) (* : uint64_t, uint1_t *) in
+ expr_let x280 := Z.add_with_get_carry(2^64, x279₂, 0, x275₁) (* : uint64_t, uint1_t *) in
+ expr_let x281 := Z.add_with_get_carry(2^64, x280₂, x225, x276₁) (* : uint64_t, uint1_t *) in
+ expr_let x282 := Z.add_with_get_carry(2^64, 0, 0, x277₁) (* : uint64_t, uint1_t *) in
+ expr_let x283 := Z.add_with_get_carry(2^64, x282₂, 0, x278₁) (* : uint64_t, uint1_t *) in
+ expr_let x284 := Z.add_with_get_carry(2^64, x283₂, 0, x279₁) (* : uint64_t, uint1_t *) in
+ expr_let x285 := Z.add_with_get_carry(2^64, x284₂, 0, x280₁) (* : uint64_t, uint1_t *) in
+ expr_let x286 := Z.add_with_get_carry(2^64, x285₂, x226, x281₁) (* : uint64_t, uint1_t *) in
+ expr_let x287 := Z.add_with_get_carry(2^64, 0, 0, x282₁) (* : uint64_t, uint1_t *) in
+ expr_let x288 := Z.add_with_get_carry(2^64, x287₂, 0, x283₁) (* : uint64_t, uint1_t *) in
+ expr_let x289 := Z.add_with_get_carry(2^64, x288₂, 0, x284₁) (* : uint64_t, uint1_t *) in
+ expr_let x290 := Z.add_with_get_carry(2^64, x289₂, 0, x285₁) (* : uint64_t, uint1_t *) in
+ expr_let x291 := Z.add_with_get_carry(2^64, x290₂, x228, x286₁) (* : uint64_t, uint1_t *) in
+ expr_let x292 := Z.add_with_get_carry(2^64, 0, 0, x287₁) (* : uint64_t, uint1_t *) in
+ expr_let x293 := Z.add_with_get_carry(2^64, x292₂, 0, x288₁) (* : uint64_t, uint1_t *) in
+ expr_let x294 := Z.add_with_get_carry(2^64, x293₂, 0, x289₁) (* : uint64_t, uint1_t *) in
+ expr_let x295 := Z.add_with_get_carry(2^64, x294₂, 0, x290₁) (* : uint64_t, uint1_t *) in
+ expr_let x296 := Z.add_with_get_carry(2^64, x295₂, x229, x291₁) (* : uint64_t, uint1_t *) in
+ expr_let x297 := Z.add_with_get_carry(2^64, 0, 0, x292₁) (* : uint64_t, uint1_t *) in
+ expr_let x298 := Z.add_with_get_carry(2^64, x297₂, 0, x293₁) (* : uint64_t, uint1_t *) in
+ expr_let x299 := Z.add_with_get_carry(2^64, x298₂, 0, x294₁) (* : uint64_t, uint1_t *) in
+ expr_let x300 := Z.add_with_get_carry(2^64, x299₂, x227, x295₁) (* : uint64_t, uint1_t *) in
+ expr_let x301 := Z.add_with_get_carry(2^64, x300₂, x230, x296₁) (* : uint64_t, uint1_t *) in
+ expr_let x302 := Z.add_with_get_carry(2^64, 0, 0, x297₁) (* : uint64_t, uint1_t *) in
+ expr_let x303 := Z.add_with_get_carry(2^64, x302₂, 0, x298₁) (* : uint64_t, uint1_t *) in
+ expr_let x304 := Z.add_with_get_carry(2^64, x303₂, 0, x299₁) (* : uint64_t, uint1_t *) in
+ expr_let x305 := Z.add_with_get_carry(2^64, x304₂, x233, x300₁) (* : uint64_t, uint1_t *) in
+ expr_let x306 := Z.add_with_get_carry(2^64, x305₂, x231, x301₁) (* : uint64_t, uint1_t *) in
+ expr_let x307 := Z.add_with_get_carry(2^64, 0, 0, x302₁) (* : uint64_t, uint1_t *) in
+ expr_let x308 := Z.add_with_get_carry(2^64, x307₂, 0, x303₁) (* : uint64_t, uint1_t *) in
+ expr_let x309 := Z.add_with_get_carry(2^64, x308₂, x235, x304₁) (* : uint64_t, uint1_t *) in
+ expr_let x310 := Z.add_with_get_carry(2^64, x309₂, x234, x305₁) (* : uint64_t, uint1_t *) in
+ expr_let x311 := Z.add_with_get_carry(2^64, x310₂, x232, x306₁) (* : uint64_t, uint1_t *) in
+ expr_let x312 := Z.add_with_get_carry(2^64, 0, 0, x307₁) (* : uint64_t, uint1_t *) in
+ expr_let x313 := Z.add_with_get_carry(2^64, x312₂, 0, x308₁) (* : uint64_t, uint1_t *) in
+ expr_let x314 := Z.add_with_get_carry(2^64, x313₂, x241, x309₁) (* : uint64_t, uint1_t *) in
+ expr_let x315 := Z.add_with_get_carry(2^64, x314₂, x239, x310₁) (* : uint64_t, uint1_t *) in
+ expr_let x316 := Z.add_with_get_carry(2^64, x315₂, x236, x311₁) (* : uint64_t, uint1_t *) in
+ expr_let x317 := Z.add_with_get_carry(2^64, 0, 0, x312₁) (* : uint64_t, uint1_t *) in
+ expr_let x318 := Z.add_with_get_carry(2^64, x317₂, x243, x313₁) (* : uint64_t, uint1_t *) in
+ expr_let x319 := Z.add_with_get_carry(2^64, x318₂, x242, x314₁) (* : uint64_t, uint1_t *) in
+ expr_let x320 := Z.add_with_get_carry(2^64, x319₂, x240, x315₁) (* : uint64_t, uint1_t *) in
+ expr_let x321 := Z.add_with_get_carry(2^64, x320₂, x237, x316₁) (* : uint64_t, uint1_t *) in
+ expr_let x322 := Z.add_with_get_carry(2^64, 0, 0, x317₁) (* : uint64_t, uint1_t *) in
+ expr_let x323 := Z.add_with_get_carry(2^64, x322₂, x249, x318₁) (* : uint64_t, uint1_t *) in
+ expr_let x324 := Z.add_with_get_carry(2^64, x323₂, x247, x319₁) (* : uint64_t, uint1_t *) in
+ expr_let x325 := Z.add_with_get_carry(2^64, x324₂, x245, x320₁) (* : uint64_t, uint1_t *) in
+ expr_let x326 := Z.add_with_get_carry(2^64, x325₂, x238, x321₁) (* : uint64_t, uint1_t *) in
+ expr_let x327 := Z.add_with_get_carry(2^64, 0, x322₁, x211₁) (* : uint64_t, uint1_t *) in
+ expr_let x328 := Z.add_with_get_carry(2^64, x327₂, x323₁, x212₁) (* : uint64_t, uint1_t *) in
+ expr_let x329 := Z.add_with_get_carry(2^64, x328₂, x324₁, x213₁) (* : uint64_t, uint1_t *) in
+ expr_let x330 := Z.add_with_get_carry(2^64, x329₂, x325₁, x214₁) (* : uint64_t, uint1_t *) in
+ expr_let x331 := Z.add_with_get_carry(2^64, x330₂, x326₁, x215₁) (* : uint64_t, uint1_t *) in
+ expr_let x332 := (Z.mul_split(2^64, x327₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x333 := Z.mul_split(2^64, x332, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x334 := Z.mul_split(2^64, x332, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x335 := Z.mul_split(2^64, x332, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x336 := Z.mul_split(2^64, x332, 1) (* : uint64_t, uint1_t *) in
+ expr_let x337 := x333₂ * 1 (* : uint64_t *) in
+ expr_let x338 := x333₁ * 1 (* : uint64_t *) in
+ expr_let x339 := x334₂ * 1 (* : uint64_t *) in
+ expr_let x340 := x334₁ * 1 (* : uint64_t *) in
+ expr_let x341 := x335₂ * 1 (* : uint64_t *) in
+ expr_let x342 := x335₁ * 1 (* : uint64_t *) in
+ expr_let x343 := x336₂ * 1 (* : uint1_t *) in
+ expr_let x344 := x336₁ * 1 (* : uint64_t *) in
+ expr_let x345 := Z.add_with_get_carry(2^64, 0, 0, x344) (* : uint64_t, uint1_t *) in
+ expr_let x346 := Z.add_with_get_carry(2^64, x345₂, 0, x343) (* : uint1_t, uint1_t *) in
+ expr_let x347 := Z.add_with_get_carry(2^64, x346₂, 0, x341) (* : uint64_t, uint1_t *) in
+ expr_let x348 := Z.add_with_get_carry(2^64, x347₂, 0, x339) (* : uint64_t, uint1_t *) in
+ expr_let x349 := Z.add_with_get_carry(2^64, x348₂, 0, x337) (* : uint64_t, uint1_t *) in
+ expr_let x350 := Z.add_with_get_carry(2^64, 0, 0, x345₁) (* : uint64_t, uint1_t *) in
+ expr_let x351 := Z.add_with_get_carry(2^64, x350₂, 0, x346₁) (* : uint1_t, uint1_t *) in
+ expr_let x352 := Z.add_with_get_carry(2^64, x351₂, 0, x347₁) (* : uint64_t, uint1_t *) in
+ expr_let x353 := Z.add_with_get_carry(2^64, x352₂, 0, x348₁) (* : uint64_t, uint1_t *) in
+ expr_let x354 := Z.add_with_get_carry(2^64, x353₂, 0, x349₁) (* : uint64_t, uint1_t *) in
+ expr_let x355 := Z.add_with_get_carry(2^64, 0, 0, x350₁) (* : uint64_t, uint1_t *) in
+ expr_let x356 := Z.add_with_get_carry(2^64, x355₂, 0, x351₁) (* : uint1_t, uint1_t *) in
+ expr_let x357 := Z.add_with_get_carry(2^64, x356₂, 0, x352₁) (* : uint64_t, uint1_t *) in
+ expr_let x358 := Z.add_with_get_carry(2^64, x357₂, 0, x353₁) (* : uint64_t, uint1_t *) in
+ expr_let x359 := Z.add_with_get_carry(2^64, x358₂, 0, x354₁) (* : uint64_t, uint1_t *) in
+ expr_let x360 := Z.add_with_get_carry(2^64, 0, 0, x355₁) (* : uint64_t, uint1_t *) in
+ expr_let x361 := Z.add_with_get_carry(2^64, x360₂, 0, x356₁) (* : uint1_t, uint1_t *) in
+ expr_let x362 := Z.add_with_get_carry(2^64, x361₂, 0, x357₁) (* : uint64_t, uint1_t *) in
+ expr_let x363 := Z.add_with_get_carry(2^64, x362₂, 0, x358₁) (* : uint64_t, uint1_t *) in
+ expr_let x364 := Z.add_with_get_carry(2^64, x363₂, 0, x359₁) (* : uint64_t, uint1_t *) in
+ expr_let x365 := Z.add_with_get_carry(2^64, 0, 0, x360₁) (* : uint64_t, uint1_t *) in
+ expr_let x366 := Z.add_with_get_carry(2^64, x365₂, 0, x361₁) (* : uint1_t, uint1_t *) in
+ expr_let x367 := Z.add_with_get_carry(2^64, x366₂, 0, x362₁) (* : uint64_t, uint1_t *) in
+ expr_let x368 := Z.add_with_get_carry(2^64, x367₂, 0, x363₁) (* : uint64_t, uint1_t *) in
+ expr_let x369 := Z.add_with_get_carry(2^64, x368₂, 0, x364₁) (* : uint64_t, uint1_t *) in
+ expr_let x370 := Z.add_with_get_carry(2^64, 0, 0, x365₁) (* : uint64_t, uint1_t *) in
+ expr_let x371 := Z.add_with_get_carry(2^64, x370₂, 0, x366₁) (* : uint1_t, uint1_t *) in
+ expr_let x372 := Z.add_with_get_carry(2^64, x371₂, 0, x367₁) (* : uint64_t, uint1_t *) in
+ expr_let x373 := Z.add_with_get_carry(2^64, x372₂, 0, x368₁) (* : uint64_t, uint1_t *) in
+ expr_let x374 := Z.add_with_get_carry(2^64, x373₂, 0, x369₁) (* : uint64_t, uint1_t *) in
+ expr_let x375 := Z.add_with_get_carry(2^64, 0, 0, x370₁) (* : uint64_t, uint1_t *) in
+ expr_let x376 := Z.add_with_get_carry(2^64, x375₂, 0, x371₁) (* : uint1_t, uint1_t *) in
+ expr_let x377 := Z.add_with_get_carry(2^64, x376₂, 0, x372₁) (* : uint64_t, uint1_t *) in
+ expr_let x378 := Z.add_with_get_carry(2^64, x377₂, 0, x373₁) (* : uint64_t, uint1_t *) in
+ expr_let x379 := Z.add_with_get_carry(2^64, x378₂, 0, x374₁) (* : uint64_t, uint1_t *) in
+ expr_let x380 := Z.add_with_get_carry(2^64, 0, 0, x375₁) (* : uint64_t, uint1_t *) in
+ expr_let x381 := Z.add_with_get_carry(2^64, x380₂, 0, x376₁) (* : uint1_t, uint1_t *) in
+ expr_let x382 := Z.add_with_get_carry(2^64, x381₂, 0, x377₁) (* : uint64_t, uint1_t *) in
+ expr_let x383 := Z.add_with_get_carry(2^64, x382₂, 0, x378₁) (* : uint64_t, uint1_t *) in
+ expr_let x384 := Z.add_with_get_carry(2^64, x383₂, 0, x379₁) (* : uint64_t, uint1_t *) in
+ expr_let x385 := Z.add_with_get_carry(2^64, 0, 0, x380₁) (* : uint64_t, uint1_t *) in
+ expr_let x386 := Z.add_with_get_carry(2^64, x385₂, 0, x381₁) (* : uint1_t, uint1_t *) in
+ expr_let x387 := Z.add_with_get_carry(2^64, x386₂, 0, x382₁) (* : uint64_t, uint1_t *) in
+ expr_let x388 := Z.add_with_get_carry(2^64, x387₂, 0, x383₁) (* : uint64_t, uint1_t *) in
+ expr_let x389 := Z.add_with_get_carry(2^64, x388₂, 0, x384₁) (* : uint64_t, uint1_t *) in
+ expr_let x390 := Z.add_with_get_carry(2^64, 0, 0, x385₁) (* : uint64_t, uint1_t *) in
+ expr_let x391 := Z.add_with_get_carry(2^64, x390₂, 0, x386₁) (* : uint1_t, uint1_t *) in
+ expr_let x392 := Z.add_with_get_carry(2^64, x391₂, 0, x387₁) (* : uint64_t, uint1_t *) in
+ expr_let x393 := Z.add_with_get_carry(2^64, x392₂, 0, x388₁) (* : uint64_t, uint1_t *) in
+ expr_let x394 := Z.add_with_get_carry(2^64, x393₂, 0, x389₁) (* : uint64_t, uint1_t *) in
+ expr_let x395 := Z.add_with_get_carry(2^64, 0, 0, x390₁) (* : uint64_t, uint1_t *) in
+ expr_let x396 := Z.add_with_get_carry(2^64, x395₂, 0, x391₁) (* : uint1_t, uint1_t *) in
+ expr_let x397 := Z.add_with_get_carry(2^64, x396₂, 0, x392₁) (* : uint64_t, uint1_t *) in
+ expr_let x398 := Z.add_with_get_carry(2^64, x397₂, 0, x393₁) (* : uint64_t, uint1_t *) in
+ expr_let x399 := Z.add_with_get_carry(2^64, x398₂, 0, x394₁) (* : uint64_t, uint1_t *) in
+ expr_let x400 := Z.add_with_get_carry(2^64, 0, 0, x395₁) (* : uint64_t, uint1_t *) in
+ expr_let x401 := Z.add_with_get_carry(2^64, x400₂, 0, x396₁) (* : uint1_t, uint1_t *) in
+ expr_let x402 := Z.add_with_get_carry(2^64, x401₂, 0, x397₁) (* : uint64_t, uint1_t *) in
+ expr_let x403 := Z.add_with_get_carry(2^64, x402₂, 0, x398₁) (* : uint64_t, uint1_t *) in
+ expr_let x404 := Z.add_with_get_carry(2^64, x403₂, 0, x399₁) (* : uint64_t, uint1_t *) in
+ expr_let x405 := Z.add_with_get_carry(2^64, 0, 0, x400₁) (* : uint64_t, uint1_t *) in
+ expr_let x406 := Z.add_with_get_carry(2^64, x405₂, 0, x401₁) (* : uint1_t, uint1_t *) in
+ expr_let x407 := Z.add_with_get_carry(2^64, x406₂, 0, x402₁) (* : uint64_t, uint1_t *) in
+ expr_let x408 := Z.add_with_get_carry(2^64, x407₂, 0, x403₁) (* : uint64_t, uint1_t *) in
+ expr_let x409 := Z.add_with_get_carry(2^64, x408₂, 0, x404₁) (* : uint64_t, uint1_t *) in
+ expr_let x410 := Z.add_with_get_carry(2^64, 0, 0, x405₁) (* : uint64_t, uint1_t *) in
+ expr_let x411 := Z.add_with_get_carry(2^64, x410₂, 0, x406₁) (* : uint1_t, uint1_t *) in
+ expr_let x412 := Z.add_with_get_carry(2^64, x411₂, 0, x407₁) (* : uint64_t, uint1_t *) in
+ expr_let x413 := Z.add_with_get_carry(2^64, x412₂, 0, x408₁) (* : uint64_t, uint1_t *) in
+ expr_let x414 := Z.add_with_get_carry(2^64, x413₂, 0, x409₁) (* : uint64_t, uint1_t *) in
+ expr_let x415 := Z.add_with_get_carry(2^64, 0, 0, x410₁) (* : uint64_t, uint1_t *) in
+ expr_let x416 := Z.add_with_get_carry(2^64, x415₂, x342, x411₁) (* : uint64_t, uint1_t *) in
+ expr_let x417 := Z.add_with_get_carry(2^64, x416₂, x340, x412₁) (* : uint64_t, uint1_t *) in
+ expr_let x418 := Z.add_with_get_carry(2^64, x417₂, x338, x413₁) (* : uint64_t, uint1_t *) in
+ expr_let x419 := Z.add_with_get_carry(2^64, x418₂, 0, x414₁) (* : uint64_t, uint1_t *) in
+ expr_let x420 := Z.add_with_get_carry(2^64, 0, x415₁, x327₁) (* : uint64_t, uint1_t *) in
+ expr_let x421 := Z.add_with_get_carry(2^64, x420₂, x416₁, x328₁) (* : uint64_t, uint1_t *) in
+ expr_let x422 := Z.add_with_get_carry(2^64, x421₂, x417₁, x329₁) (* : uint64_t, uint1_t *) in
+ expr_let x423 := Z.add_with_get_carry(2^64, x422₂, x418₁, x330₁) (* : uint64_t, uint1_t *) in
+ expr_let x424 := Z.add_with_get_carry(2^64, x423₂, x419₁, x331₁) (* : uint64_t, uint1_t *) in
+ expr_let x425 := Z.add_with_get_carry(2^64, x424₂, 0, x331₂) (* : uint64_t, uint1_t *) in
+ expr_let x426 := Z.mul_split(2^64, x3, x1[3]) (* : uint64_t, uint64_t *) in
+ expr_let x427 := Z.mul_split(2^64, x3, x1[2]) (* : uint64_t, uint64_t *) in
+ expr_let x428 := Z.mul_split(2^64, x3, x1[1]) (* : uint64_t, uint64_t *) in
+ expr_let x429 := Z.mul_split(2^64, x3, x1[0]) (* : uint64_t, uint64_t *) in
+ expr_let x430 := 2^192 * 0 (* : uint1_t *) in
+ expr_let x431 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x432 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x433 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x434 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x435 := 1 * 0 (* : uint1_t *) in
+ expr_let x436 := 1 * 0 (* : uint1_t *) in
+ expr_let x437 := 1 * 0 (* : uint1_t *) in
+ expr_let x438 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x439 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x440 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x441 := 1 * 0 (* : uint1_t *) in
+ expr_let x442 := 1 * 0 (* : uint1_t *) in
+ expr_let x443 := 1 * 0 (* : uint1_t *) in
+ expr_let x444 := 1 * 0 (* : uint1_t *) in
+ expr_let x445 := 1 * 0 (* : uint1_t *) in
+ expr_let x446 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x447 := 1 * 0 (* : uint1_t *) in
+ expr_let x448 := 1 * 0 (* : uint1_t *) in
+ expr_let x449 := 1 * 0 (* : uint1_t *) in
+ expr_let x450 := 1 * 0 (* : uint1_t *) in
+ expr_let x451 := 1 * 0 (* : uint1_t *) in
+ expr_let x452 := 1 * 0 (* : uint1_t *) in
+ expr_let x453 := 1 * 0 (* : uint1_t *) in
+ expr_let x454 := x426₂ * 1 (* : uint64_t *) in
+ expr_let x455 := x426₁ * 1 (* : uint64_t *) in
+ expr_let x456 := x427₂ * 1 (* : uint64_t *) in
+ expr_let x457 := x427₁ * 1 (* : uint64_t *) in
+ expr_let x458 := x428₂ * 1 (* : uint64_t *) in
+ expr_let x459 := x428₁ * 1 (* : uint64_t *) in
+ expr_let x460 := x429₂ * 1 (* : uint64_t *) in
+ expr_let x461 := x429₁ * 1 (* : uint64_t *) in
+ expr_let x462 := Z.add_with_get_carry(2^64, 0, 0, x461) (* : uint64_t, uint1_t *) in
+ expr_let x463 := Z.add_with_get_carry(2^64, x462₂, 0, x460) (* : uint64_t, uint1_t *) in
+ expr_let x464 := Z.add_with_get_carry(2^64, x463₂, 0, x458) (* : uint64_t, uint1_t *) in
+ expr_let x465 := Z.add_with_get_carry(2^64, x464₂, 0, x456) (* : uint64_t, uint1_t *) in
+ expr_let x466 := Z.add_with_get_carry(2^64, x465₂, x430, x454) (* : uint64_t, uint1_t *) in
+ expr_let x467 := Z.add_with_get_carry(2^64, 0, 0, x462₁) (* : uint64_t, uint1_t *) in
+ expr_let x468 := Z.add_with_get_carry(2^64, x467₂, 0, x463₁) (* : uint64_t, uint1_t *) in
+ expr_let x469 := Z.add_with_get_carry(2^64, x468₂, 0, x464₁) (* : uint64_t, uint1_t *) in
+ expr_let x470 := Z.add_with_get_carry(2^64, x469₂, 0, x465₁) (* : uint64_t, uint1_t *) in
+ expr_let x471 := Z.add_with_get_carry(2^64, x470₂, x431, x466₁) (* : uint64_t, uint1_t *) in
+ expr_let x472 := Z.add_with_get_carry(2^64, 0, 0, x467₁) (* : uint64_t, uint1_t *) in
+ expr_let x473 := Z.add_with_get_carry(2^64, x472₂, 0, x468₁) (* : uint64_t, uint1_t *) in
+ expr_let x474 := Z.add_with_get_carry(2^64, x473₂, 0, x469₁) (* : uint64_t, uint1_t *) in
+ expr_let x475 := Z.add_with_get_carry(2^64, x474₂, 0, x470₁) (* : uint64_t, uint1_t *) in
+ expr_let x476 := Z.add_with_get_carry(2^64, x475₂, x432, x471₁) (* : uint64_t, uint1_t *) in
+ expr_let x477 := Z.add_with_get_carry(2^64, 0, 0, x472₁) (* : uint64_t, uint1_t *) in
+ expr_let x478 := Z.add_with_get_carry(2^64, x477₂, 0, x473₁) (* : uint64_t, uint1_t *) in
+ expr_let x479 := Z.add_with_get_carry(2^64, x478₂, 0, x474₁) (* : uint64_t, uint1_t *) in
+ expr_let x480 := Z.add_with_get_carry(2^64, x479₂, 0, x475₁) (* : uint64_t, uint1_t *) in
+ expr_let x481 := Z.add_with_get_carry(2^64, x480₂, x433, x476₁) (* : uint64_t, uint1_t *) in
+ expr_let x482 := Z.add_with_get_carry(2^64, 0, 0, x477₁) (* : uint64_t, uint1_t *) in
+ expr_let x483 := Z.add_with_get_carry(2^64, x482₂, 0, x478₁) (* : uint64_t, uint1_t *) in
+ expr_let x484 := Z.add_with_get_carry(2^64, x483₂, 0, x479₁) (* : uint64_t, uint1_t *) in
+ expr_let x485 := Z.add_with_get_carry(2^64, x484₂, 0, x480₁) (* : uint64_t, uint1_t *) in
+ expr_let x486 := Z.add_with_get_carry(2^64, x485₂, x434, x481₁) (* : uint64_t, uint1_t *) in
+ expr_let x487 := Z.add_with_get_carry(2^64, 0, 0, x482₁) (* : uint64_t, uint1_t *) in
+ expr_let x488 := Z.add_with_get_carry(2^64, x487₂, 0, x483₁) (* : uint64_t, uint1_t *) in
+ expr_let x489 := Z.add_with_get_carry(2^64, x488₂, 0, x484₁) (* : uint64_t, uint1_t *) in
+ expr_let x490 := Z.add_with_get_carry(2^64, x489₂, 0, x485₁) (* : uint64_t, uint1_t *) in
+ expr_let x491 := Z.add_with_get_carry(2^64, x490₂, x435, x486₁) (* : uint64_t, uint1_t *) in
+ expr_let x492 := Z.add_with_get_carry(2^64, 0, 0, x487₁) (* : uint64_t, uint1_t *) in
+ expr_let x493 := Z.add_with_get_carry(2^64, x492₂, 0, x488₁) (* : uint64_t, uint1_t *) in
+ expr_let x494 := Z.add_with_get_carry(2^64, x493₂, 0, x489₁) (* : uint64_t, uint1_t *) in
+ expr_let x495 := Z.add_with_get_carry(2^64, x494₂, 0, x490₁) (* : uint64_t, uint1_t *) in
+ expr_let x496 := Z.add_with_get_carry(2^64, x495₂, x436, x491₁) (* : uint64_t, uint1_t *) in
+ expr_let x497 := Z.add_with_get_carry(2^64, 0, 0, x492₁) (* : uint64_t, uint1_t *) in
+ expr_let x498 := Z.add_with_get_carry(2^64, x497₂, 0, x493₁) (* : uint64_t, uint1_t *) in
+ expr_let x499 := Z.add_with_get_carry(2^64, x498₂, 0, x494₁) (* : uint64_t, uint1_t *) in
+ expr_let x500 := Z.add_with_get_carry(2^64, x499₂, 0, x495₁) (* : uint64_t, uint1_t *) in
+ expr_let x501 := Z.add_with_get_carry(2^64, x500₂, x438, x496₁) (* : uint64_t, uint1_t *) in
+ expr_let x502 := Z.add_with_get_carry(2^64, 0, 0, x497₁) (* : uint64_t, uint1_t *) in
+ expr_let x503 := Z.add_with_get_carry(2^64, x502₂, 0, x498₁) (* : uint64_t, uint1_t *) in
+ expr_let x504 := Z.add_with_get_carry(2^64, x503₂, 0, x499₁) (* : uint64_t, uint1_t *) in
+ expr_let x505 := Z.add_with_get_carry(2^64, x504₂, 0, x500₁) (* : uint64_t, uint1_t *) in
+ expr_let x506 := Z.add_with_get_carry(2^64, x505₂, x439, x501₁) (* : uint64_t, uint1_t *) in
+ expr_let x507 := Z.add_with_get_carry(2^64, 0, 0, x502₁) (* : uint64_t, uint1_t *) in
+ expr_let x508 := Z.add_with_get_carry(2^64, x507₂, 0, x503₁) (* : uint64_t, uint1_t *) in
+ expr_let x509 := Z.add_with_get_carry(2^64, x508₂, 0, x504₁) (* : uint64_t, uint1_t *) in
+ expr_let x510 := Z.add_with_get_carry(2^64, x509₂, x437, x505₁) (* : uint64_t, uint1_t *) in
+ expr_let x511 := Z.add_with_get_carry(2^64, x510₂, x440, x506₁) (* : uint64_t, uint1_t *) in
+ expr_let x512 := Z.add_with_get_carry(2^64, 0, 0, x507₁) (* : uint64_t, uint1_t *) in
+ expr_let x513 := Z.add_with_get_carry(2^64, x512₂, 0, x508₁) (* : uint64_t, uint1_t *) in
+ expr_let x514 := Z.add_with_get_carry(2^64, x513₂, 0, x509₁) (* : uint64_t, uint1_t *) in
+ expr_let x515 := Z.add_with_get_carry(2^64, x514₂, x443, x510₁) (* : uint64_t, uint1_t *) in
+ expr_let x516 := Z.add_with_get_carry(2^64, x515₂, x441, x511₁) (* : uint64_t, uint1_t *) in
+ expr_let x517 := Z.add_with_get_carry(2^64, 0, 0, x512₁) (* : uint64_t, uint1_t *) in
+ expr_let x518 := Z.add_with_get_carry(2^64, x517₂, 0, x513₁) (* : uint64_t, uint1_t *) in
+ expr_let x519 := Z.add_with_get_carry(2^64, x518₂, x445, x514₁) (* : uint64_t, uint1_t *) in
+ expr_let x520 := Z.add_with_get_carry(2^64, x519₂, x444, x515₁) (* : uint64_t, uint1_t *) in
+ expr_let x521 := Z.add_with_get_carry(2^64, x520₂, x442, x516₁) (* : uint64_t, uint1_t *) in
+ expr_let x522 := Z.add_with_get_carry(2^64, 0, 0, x517₁) (* : uint64_t, uint1_t *) in
+ expr_let x523 := Z.add_with_get_carry(2^64, x522₂, 0, x518₁) (* : uint64_t, uint1_t *) in
+ expr_let x524 := Z.add_with_get_carry(2^64, x523₂, x451, x519₁) (* : uint64_t, uint1_t *) in
+ expr_let x525 := Z.add_with_get_carry(2^64, x524₂, x449, x520₁) (* : uint64_t, uint1_t *) in
+ expr_let x526 := Z.add_with_get_carry(2^64, x525₂, x446, x521₁) (* : uint64_t, uint1_t *) in
+ expr_let x527 := Z.add_with_get_carry(2^64, 0, 0, x522₁) (* : uint64_t, uint1_t *) in
+ expr_let x528 := Z.add_with_get_carry(2^64, x527₂, x453, x523₁) (* : uint64_t, uint1_t *) in
+ expr_let x529 := Z.add_with_get_carry(2^64, x528₂, x452, x524₁) (* : uint64_t, uint1_t *) in
+ expr_let x530 := Z.add_with_get_carry(2^64, x529₂, x450, x525₁) (* : uint64_t, uint1_t *) in
+ expr_let x531 := Z.add_with_get_carry(2^64, x530₂, x447, x526₁) (* : uint64_t, uint1_t *) in
+ expr_let x532 := Z.add_with_get_carry(2^64, 0, 0, x527₁) (* : uint64_t, uint1_t *) in
+ expr_let x533 := Z.add_with_get_carry(2^64, x532₂, x459, x528₁) (* : uint64_t, uint1_t *) in
+ expr_let x534 := Z.add_with_get_carry(2^64, x533₂, x457, x529₁) (* : uint64_t, uint1_t *) in
+ expr_let x535 := Z.add_with_get_carry(2^64, x534₂, x455, x530₁) (* : uint64_t, uint1_t *) in
+ expr_let x536 := Z.add_with_get_carry(2^64, x535₂, x448, x531₁) (* : uint64_t, uint1_t *) in
+ expr_let x537 := Z.add_with_get_carry(2^64, 0, x532₁, x421₁) (* : uint64_t, uint1_t *) in
+ expr_let x538 := Z.add_with_get_carry(2^64, x537₂, x533₁, x422₁) (* : uint64_t, uint1_t *) in
+ expr_let x539 := Z.add_with_get_carry(2^64, x538₂, x534₁, x423₁) (* : uint64_t, uint1_t *) in
+ expr_let x540 := Z.add_with_get_carry(2^64, x539₂, x535₁, x424₁) (* : uint64_t, uint1_t *) in
+ expr_let x541 := Z.add_with_get_carry(2^64, x540₂, x536₁, x425₁) (* : uint64_t, uint1_t *) in
+ expr_let x542 := (Z.mul_split(2^64, x537₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x543 := Z.mul_split(2^64, x542, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x544 := Z.mul_split(2^64, x542, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x545 := Z.mul_split(2^64, x542, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x546 := Z.mul_split(2^64, x542, 1) (* : uint64_t, uint1_t *) in
+ expr_let x547 := x543₂ * 1 (* : uint64_t *) in
+ expr_let x548 := x543₁ * 1 (* : uint64_t *) in
+ expr_let x549 := x544₂ * 1 (* : uint64_t *) in
+ expr_let x550 := x544₁ * 1 (* : uint64_t *) in
+ expr_let x551 := x545₂ * 1 (* : uint64_t *) in
+ expr_let x552 := x545₁ * 1 (* : uint64_t *) in
+ expr_let x553 := x546₂ * 1 (* : uint1_t *) in
+ expr_let x554 := x546₁ * 1 (* : uint64_t *) in
+ expr_let x555 := Z.add_with_get_carry(2^64, 0, 0, x554) (* : uint64_t, uint1_t *) in
+ expr_let x556 := Z.add_with_get_carry(2^64, x555₂, 0, x553) (* : uint1_t, uint1_t *) in
+ expr_let x557 := Z.add_with_get_carry(2^64, x556₂, 0, x551) (* : uint64_t, uint1_t *) in
+ expr_let x558 := Z.add_with_get_carry(2^64, x557₂, 0, x549) (* : uint64_t, uint1_t *) in
+ expr_let x559 := Z.add_with_get_carry(2^64, x558₂, 0, x547) (* : uint64_t, uint1_t *) in
+ expr_let x560 := Z.add_with_get_carry(2^64, 0, 0, x555₁) (* : uint64_t, uint1_t *) in
+ expr_let x561 := Z.add_with_get_carry(2^64, x560₂, 0, x556₁) (* : uint1_t, uint1_t *) in
+ expr_let x562 := Z.add_with_get_carry(2^64, x561₂, 0, x557₁) (* : uint64_t, uint1_t *) in
+ expr_let x563 := Z.add_with_get_carry(2^64, x562₂, 0, x558₁) (* : uint64_t, uint1_t *) in
+ expr_let x564 := Z.add_with_get_carry(2^64, x563₂, 0, x559₁) (* : uint64_t, uint1_t *) in
+ expr_let x565 := Z.add_with_get_carry(2^64, 0, 0, x560₁) (* : uint64_t, uint1_t *) in
+ expr_let x566 := Z.add_with_get_carry(2^64, x565₂, 0, x561₁) (* : uint1_t, uint1_t *) in
+ expr_let x567 := Z.add_with_get_carry(2^64, x566₂, 0, x562₁) (* : uint64_t, uint1_t *) in
+ expr_let x568 := Z.add_with_get_carry(2^64, x567₂, 0, x563₁) (* : uint64_t, uint1_t *) in
+ expr_let x569 := Z.add_with_get_carry(2^64, x568₂, 0, x564₁) (* : uint64_t, uint1_t *) in
+ expr_let x570 := Z.add_with_get_carry(2^64, 0, 0, x565₁) (* : uint64_t, uint1_t *) in
+ expr_let x571 := Z.add_with_get_carry(2^64, x570₂, 0, x566₁) (* : uint1_t, uint1_t *) in
+ expr_let x572 := Z.add_with_get_carry(2^64, x571₂, 0, x567₁) (* : uint64_t, uint1_t *) in
+ expr_let x573 := Z.add_with_get_carry(2^64, x572₂, 0, x568₁) (* : uint64_t, uint1_t *) in
+ expr_let x574 := Z.add_with_get_carry(2^64, x573₂, 0, x569₁) (* : uint64_t, uint1_t *) in
+ expr_let x575 := Z.add_with_get_carry(2^64, 0, 0, x570₁) (* : uint64_t, uint1_t *) in
+ expr_let x576 := Z.add_with_get_carry(2^64, x575₂, 0, x571₁) (* : uint1_t, uint1_t *) in
+ expr_let x577 := Z.add_with_get_carry(2^64, x576₂, 0, x572₁) (* : uint64_t, uint1_t *) in
+ expr_let x578 := Z.add_with_get_carry(2^64, x577₂, 0, x573₁) (* : uint64_t, uint1_t *) in
+ expr_let x579 := Z.add_with_get_carry(2^64, x578₂, 0, x574₁) (* : uint64_t, uint1_t *) in
+ expr_let x580 := Z.add_with_get_carry(2^64, 0, 0, x575₁) (* : uint64_t, uint1_t *) in
+ expr_let x581 := Z.add_with_get_carry(2^64, x580₂, 0, x576₁) (* : uint1_t, uint1_t *) in
+ expr_let x582 := Z.add_with_get_carry(2^64, x581₂, 0, x577₁) (* : uint64_t, uint1_t *) in
+ expr_let x583 := Z.add_with_get_carry(2^64, x582₂, 0, x578₁) (* : uint64_t, uint1_t *) in
+ expr_let x584 := Z.add_with_get_carry(2^64, x583₂, 0, x579₁) (* : uint64_t, uint1_t *) in
+ expr_let x585 := Z.add_with_get_carry(2^64, 0, 0, x580₁) (* : uint64_t, uint1_t *) in
+ expr_let x586 := Z.add_with_get_carry(2^64, x585₂, 0, x581₁) (* : uint1_t, uint1_t *) in
+ expr_let x587 := Z.add_with_get_carry(2^64, x586₂, 0, x582₁) (* : uint64_t, uint1_t *) in
+ expr_let x588 := Z.add_with_get_carry(2^64, x587₂, 0, x583₁) (* : uint64_t, uint1_t *) in
+ expr_let x589 := Z.add_with_get_carry(2^64, x588₂, 0, x584₁) (* : uint64_t, uint1_t *) in
+ expr_let x590 := Z.add_with_get_carry(2^64, 0, 0, x585₁) (* : uint64_t, uint1_t *) in
+ expr_let x591 := Z.add_with_get_carry(2^64, x590₂, 0, x586₁) (* : uint1_t, uint1_t *) in
+ expr_let x592 := Z.add_with_get_carry(2^64, x591₂, 0, x587₁) (* : uint64_t, uint1_t *) in
+ expr_let x593 := Z.add_with_get_carry(2^64, x592₂, 0, x588₁) (* : uint64_t, uint1_t *) in
+ expr_let x594 := Z.add_with_get_carry(2^64, x593₂, 0, x589₁) (* : uint64_t, uint1_t *) in
+ expr_let x595 := Z.add_with_get_carry(2^64, 0, 0, x590₁) (* : uint64_t, uint1_t *) in
+ expr_let x596 := Z.add_with_get_carry(2^64, x595₂, 0, x591₁) (* : uint1_t, uint1_t *) in
+ expr_let x597 := Z.add_with_get_carry(2^64, x596₂, 0, x592₁) (* : uint64_t, uint1_t *) in
+ expr_let x598 := Z.add_with_get_carry(2^64, x597₂, 0, x593₁) (* : uint64_t, uint1_t *) in
+ expr_let x599 := Z.add_with_get_carry(2^64, x598₂, 0, x594₁) (* : uint64_t, uint1_t *) in
+ expr_let x600 := Z.add_with_get_carry(2^64, 0, 0, x595₁) (* : uint64_t, uint1_t *) in
+ expr_let x601 := Z.add_with_get_carry(2^64, x600₂, 0, x596₁) (* : uint1_t, uint1_t *) in
+ expr_let x602 := Z.add_with_get_carry(2^64, x601₂, 0, x597₁) (* : uint64_t, uint1_t *) in
+ expr_let x603 := Z.add_with_get_carry(2^64, x602₂, 0, x598₁) (* : uint64_t, uint1_t *) in
+ expr_let x604 := Z.add_with_get_carry(2^64, x603₂, 0, x599₁) (* : uint64_t, uint1_t *) in
+ expr_let x605 := Z.add_with_get_carry(2^64, 0, 0, x600₁) (* : uint64_t, uint1_t *) in
+ expr_let x606 := Z.add_with_get_carry(2^64, x605₂, 0, x601₁) (* : uint1_t, uint1_t *) in
+ expr_let x607 := Z.add_with_get_carry(2^64, x606₂, 0, x602₁) (* : uint64_t, uint1_t *) in
+ expr_let x608 := Z.add_with_get_carry(2^64, x607₂, 0, x603₁) (* : uint64_t, uint1_t *) in
+ expr_let x609 := Z.add_with_get_carry(2^64, x608₂, 0, x604₁) (* : uint64_t, uint1_t *) in
+ expr_let x610 := Z.add_with_get_carry(2^64, 0, 0, x605₁) (* : uint64_t, uint1_t *) in
+ expr_let x611 := Z.add_with_get_carry(2^64, x610₂, 0, x606₁) (* : uint1_t, uint1_t *) in
+ expr_let x612 := Z.add_with_get_carry(2^64, x611₂, 0, x607₁) (* : uint64_t, uint1_t *) in
+ expr_let x613 := Z.add_with_get_carry(2^64, x612₂, 0, x608₁) (* : uint64_t, uint1_t *) in
+ expr_let x614 := Z.add_with_get_carry(2^64, x613₂, 0, x609₁) (* : uint64_t, uint1_t *) in
+ expr_let x615 := Z.add_with_get_carry(2^64, 0, 0, x610₁) (* : uint64_t, uint1_t *) in
+ expr_let x616 := Z.add_with_get_carry(2^64, x615₂, 0, x611₁) (* : uint1_t, uint1_t *) in
+ expr_let x617 := Z.add_with_get_carry(2^64, x616₂, 0, x612₁) (* : uint64_t, uint1_t *) in
+ expr_let x618 := Z.add_with_get_carry(2^64, x617₂, 0, x613₁) (* : uint64_t, uint1_t *) in
+ expr_let x619 := Z.add_with_get_carry(2^64, x618₂, 0, x614₁) (* : uint64_t, uint1_t *) in
+ expr_let x620 := Z.add_with_get_carry(2^64, 0, 0, x615₁) (* : uint64_t, uint1_t *) in
+ expr_let x621 := Z.add_with_get_carry(2^64, x620₂, 0, x616₁) (* : uint1_t, uint1_t *) in
+ expr_let x622 := Z.add_with_get_carry(2^64, x621₂, 0, x617₁) (* : uint64_t, uint1_t *) in
+ expr_let x623 := Z.add_with_get_carry(2^64, x622₂, 0, x618₁) (* : uint64_t, uint1_t *) in
+ expr_let x624 := Z.add_with_get_carry(2^64, x623₂, 0, x619₁) (* : uint64_t, uint1_t *) in
+ expr_let x625 := Z.add_with_get_carry(2^64, 0, 0, x620₁) (* : uint64_t, uint1_t *) in
+ expr_let x626 := Z.add_with_get_carry(2^64, x625₂, x552, x621₁) (* : uint64_t, uint1_t *) in
+ expr_let x627 := Z.add_with_get_carry(2^64, x626₂, x550, x622₁) (* : uint64_t, uint1_t *) in
+ expr_let x628 := Z.add_with_get_carry(2^64, x627₂, x548, x623₁) (* : uint64_t, uint1_t *) in
+ expr_let x629 := Z.add_with_get_carry(2^64, x628₂, 0, x624₁) (* : uint64_t, uint1_t *) in
+ expr_let x630 := Z.add_with_get_carry(2^64, 0, x625₁, x537₁) (* : uint64_t, uint1_t *) in
+ expr_let x631 := Z.add_with_get_carry(2^64, x630₂, x626₁, x538₁) (* : uint64_t, uint1_t *) in
+ expr_let x632 := Z.add_with_get_carry(2^64, x631₂, x627₁, x539₁) (* : uint64_t, uint1_t *) in
+ expr_let x633 := Z.add_with_get_carry(2^64, x632₂, x628₁, x540₁) (* : uint64_t, uint1_t *) in
+ expr_let x634 := Z.add_with_get_carry(2^64, x633₂, x629₁, x541₁) (* : uint64_t, uint1_t *) in
+ expr_let x635 := Z.add_with_get_carry(2^64, x634₂, 0, x541₂) (* : uint64_t, uint1_t *) in
+ expr_let x636 := Z.mul_split(2^64, x4, x1[3]) (* : uint64_t, uint64_t *) in
+ expr_let x637 := Z.mul_split(2^64, x4, x1[2]) (* : uint64_t, uint64_t *) in
+ expr_let x638 := Z.mul_split(2^64, x4, x1[1]) (* : uint64_t, uint64_t *) in
+ expr_let x639 := Z.mul_split(2^64, x4, x1[0]) (* : uint64_t, uint64_t *) in
+ expr_let x640 := 2^192 * 0 (* : uint1_t *) in
+ expr_let x641 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x642 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x643 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x644 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x645 := 1 * 0 (* : uint1_t *) in
+ expr_let x646 := 1 * 0 (* : uint1_t *) in
+ expr_let x647 := 1 * 0 (* : uint1_t *) in
+ expr_let x648 := 2^128 * 0 (* : uint1_t *) in
+ expr_let x649 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x650 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x651 := 1 * 0 (* : uint1_t *) in
+ expr_let x652 := 1 * 0 (* : uint1_t *) in
+ expr_let x653 := 1 * 0 (* : uint1_t *) in
+ expr_let x654 := 1 * 0 (* : uint1_t *) in
+ expr_let x655 := 1 * 0 (* : uint1_t *) in
+ expr_let x656 := 2^64 * 0 (* : uint1_t *) in
+ expr_let x657 := 1 * 0 (* : uint1_t *) in
+ expr_let x658 := 1 * 0 (* : uint1_t *) in
+ expr_let x659 := 1 * 0 (* : uint1_t *) in
+ expr_let x660 := 1 * 0 (* : uint1_t *) in
+ expr_let x661 := 1 * 0 (* : uint1_t *) in
+ expr_let x662 := 1 * 0 (* : uint1_t *) in
+ expr_let x663 := 1 * 0 (* : uint1_t *) in
+ expr_let x664 := x636₂ * 1 (* : uint64_t *) in
+ expr_let x665 := x636₁ * 1 (* : uint64_t *) in
+ expr_let x666 := x637₂ * 1 (* : uint64_t *) in
+ expr_let x667 := x637₁ * 1 (* : uint64_t *) in
+ expr_let x668 := x638₂ * 1 (* : uint64_t *) in
+ expr_let x669 := x638₁ * 1 (* : uint64_t *) in
+ expr_let x670 := x639₂ * 1 (* : uint64_t *) in
+ expr_let x671 := x639₁ * 1 (* : uint64_t *) in
+ expr_let x672 := Z.add_with_get_carry(2^64, 0, 0, x671) (* : uint64_t, uint1_t *) in
+ expr_let x673 := Z.add_with_get_carry(2^64, x672₂, 0, x670) (* : uint64_t, uint1_t *) in
+ expr_let x674 := Z.add_with_get_carry(2^64, x673₂, 0, x668) (* : uint64_t, uint1_t *) in
+ expr_let x675 := Z.add_with_get_carry(2^64, x674₂, 0, x666) (* : uint64_t, uint1_t *) in
+ expr_let x676 := Z.add_with_get_carry(2^64, x675₂, x640, x664) (* : uint64_t, uint1_t *) in
+ expr_let x677 := Z.add_with_get_carry(2^64, 0, 0, x672₁) (* : uint64_t, uint1_t *) in
+ expr_let x678 := Z.add_with_get_carry(2^64, x677₂, 0, x673₁) (* : uint64_t, uint1_t *) in
+ expr_let x679 := Z.add_with_get_carry(2^64, x678₂, 0, x674₁) (* : uint64_t, uint1_t *) in
+ expr_let x680 := Z.add_with_get_carry(2^64, x679₂, 0, x675₁) (* : uint64_t, uint1_t *) in
+ expr_let x681 := Z.add_with_get_carry(2^64, x680₂, x641, x676₁) (* : uint64_t, uint1_t *) in
+ expr_let x682 := Z.add_with_get_carry(2^64, 0, 0, x677₁) (* : uint64_t, uint1_t *) in
+ expr_let x683 := Z.add_with_get_carry(2^64, x682₂, 0, x678₁) (* : uint64_t, uint1_t *) in
+ expr_let x684 := Z.add_with_get_carry(2^64, x683₂, 0, x679₁) (* : uint64_t, uint1_t *) in
+ expr_let x685 := Z.add_with_get_carry(2^64, x684₂, 0, x680₁) (* : uint64_t, uint1_t *) in
+ expr_let x686 := Z.add_with_get_carry(2^64, x685₂, x642, x681₁) (* : uint64_t, uint1_t *) in
+ expr_let x687 := Z.add_with_get_carry(2^64, 0, 0, x682₁) (* : uint64_t, uint1_t *) in
+ expr_let x688 := Z.add_with_get_carry(2^64, x687₂, 0, x683₁) (* : uint64_t, uint1_t *) in
+ expr_let x689 := Z.add_with_get_carry(2^64, x688₂, 0, x684₁) (* : uint64_t, uint1_t *) in
+ expr_let x690 := Z.add_with_get_carry(2^64, x689₂, 0, x685₁) (* : uint64_t, uint1_t *) in
+ expr_let x691 := Z.add_with_get_carry(2^64, x690₂, x643, x686₁) (* : uint64_t, uint1_t *) in
+ expr_let x692 := Z.add_with_get_carry(2^64, 0, 0, x687₁) (* : uint64_t, uint1_t *) in
+ expr_let x693 := Z.add_with_get_carry(2^64, x692₂, 0, x688₁) (* : uint64_t, uint1_t *) in
+ expr_let x694 := Z.add_with_get_carry(2^64, x693₂, 0, x689₁) (* : uint64_t, uint1_t *) in
+ expr_let x695 := Z.add_with_get_carry(2^64, x694₂, 0, x690₁) (* : uint64_t, uint1_t *) in
+ expr_let x696 := Z.add_with_get_carry(2^64, x695₂, x644, x691₁) (* : uint64_t, uint1_t *) in
+ expr_let x697 := Z.add_with_get_carry(2^64, 0, 0, x692₁) (* : uint64_t, uint1_t *) in
+ expr_let x698 := Z.add_with_get_carry(2^64, x697₂, 0, x693₁) (* : uint64_t, uint1_t *) in
+ expr_let x699 := Z.add_with_get_carry(2^64, x698₂, 0, x694₁) (* : uint64_t, uint1_t *) in
+ expr_let x700 := Z.add_with_get_carry(2^64, x699₂, 0, x695₁) (* : uint64_t, uint1_t *) in
+ expr_let x701 := Z.add_with_get_carry(2^64, x700₂, x645, x696₁) (* : uint64_t, uint1_t *) in
+ expr_let x702 := Z.add_with_get_carry(2^64, 0, 0, x697₁) (* : uint64_t, uint1_t *) in
+ expr_let x703 := Z.add_with_get_carry(2^64, x702₂, 0, x698₁) (* : uint64_t, uint1_t *) in
+ expr_let x704 := Z.add_with_get_carry(2^64, x703₂, 0, x699₁) (* : uint64_t, uint1_t *) in
+ expr_let x705 := Z.add_with_get_carry(2^64, x704₂, 0, x700₁) (* : uint64_t, uint1_t *) in
+ expr_let x706 := Z.add_with_get_carry(2^64, x705₂, x646, x701₁) (* : uint64_t, uint1_t *) in
+ expr_let x707 := Z.add_with_get_carry(2^64, 0, 0, x702₁) (* : uint64_t, uint1_t *) in
+ expr_let x708 := Z.add_with_get_carry(2^64, x707₂, 0, x703₁) (* : uint64_t, uint1_t *) in
+ expr_let x709 := Z.add_with_get_carry(2^64, x708₂, 0, x704₁) (* : uint64_t, uint1_t *) in
+ expr_let x710 := Z.add_with_get_carry(2^64, x709₂, 0, x705₁) (* : uint64_t, uint1_t *) in
+ expr_let x711 := Z.add_with_get_carry(2^64, x710₂, x648, x706₁) (* : uint64_t, uint1_t *) in
+ expr_let x712 := Z.add_with_get_carry(2^64, 0, 0, x707₁) (* : uint64_t, uint1_t *) in
+ expr_let x713 := Z.add_with_get_carry(2^64, x712₂, 0, x708₁) (* : uint64_t, uint1_t *) in
+ expr_let x714 := Z.add_with_get_carry(2^64, x713₂, 0, x709₁) (* : uint64_t, uint1_t *) in
+ expr_let x715 := Z.add_with_get_carry(2^64, x714₂, 0, x710₁) (* : uint64_t, uint1_t *) in
+ expr_let x716 := Z.add_with_get_carry(2^64, x715₂, x649, x711₁) (* : uint64_t, uint1_t *) in
+ expr_let x717 := Z.add_with_get_carry(2^64, 0, 0, x712₁) (* : uint64_t, uint1_t *) in
+ expr_let x718 := Z.add_with_get_carry(2^64, x717₂, 0, x713₁) (* : uint64_t, uint1_t *) in
+ expr_let x719 := Z.add_with_get_carry(2^64, x718₂, 0, x714₁) (* : uint64_t, uint1_t *) in
+ expr_let x720 := Z.add_with_get_carry(2^64, x719₂, x647, x715₁) (* : uint64_t, uint1_t *) in
+ expr_let x721 := Z.add_with_get_carry(2^64, x720₂, x650, x716₁) (* : uint64_t, uint1_t *) in
+ expr_let x722 := Z.add_with_get_carry(2^64, 0, 0, x717₁) (* : uint64_t, uint1_t *) in
+ expr_let x723 := Z.add_with_get_carry(2^64, x722₂, 0, x718₁) (* : uint64_t, uint1_t *) in
+ expr_let x724 := Z.add_with_get_carry(2^64, x723₂, 0, x719₁) (* : uint64_t, uint1_t *) in
+ expr_let x725 := Z.add_with_get_carry(2^64, x724₂, x653, x720₁) (* : uint64_t, uint1_t *) in
+ expr_let x726 := Z.add_with_get_carry(2^64, x725₂, x651, x721₁) (* : uint64_t, uint1_t *) in
+ expr_let x727 := Z.add_with_get_carry(2^64, 0, 0, x722₁) (* : uint64_t, uint1_t *) in
+ expr_let x728 := Z.add_with_get_carry(2^64, x727₂, 0, x723₁) (* : uint64_t, uint1_t *) in
+ expr_let x729 := Z.add_with_get_carry(2^64, x728₂, x655, x724₁) (* : uint64_t, uint1_t *) in
+ expr_let x730 := Z.add_with_get_carry(2^64, x729₂, x654, x725₁) (* : uint64_t, uint1_t *) in
+ expr_let x731 := Z.add_with_get_carry(2^64, x730₂, x652, x726₁) (* : uint64_t, uint1_t *) in
+ expr_let x732 := Z.add_with_get_carry(2^64, 0, 0, x727₁) (* : uint64_t, uint1_t *) in
+ expr_let x733 := Z.add_with_get_carry(2^64, x732₂, 0, x728₁) (* : uint64_t, uint1_t *) in
+ expr_let x734 := Z.add_with_get_carry(2^64, x733₂, x661, x729₁) (* : uint64_t, uint1_t *) in
+ expr_let x735 := Z.add_with_get_carry(2^64, x734₂, x659, x730₁) (* : uint64_t, uint1_t *) in
+ expr_let x736 := Z.add_with_get_carry(2^64, x735₂, x656, x731₁) (* : uint64_t, uint1_t *) in
+ expr_let x737 := Z.add_with_get_carry(2^64, 0, 0, x732₁) (* : uint64_t, uint1_t *) in
+ expr_let x738 := Z.add_with_get_carry(2^64, x737₂, x663, x733₁) (* : uint64_t, uint1_t *) in
+ expr_let x739 := Z.add_with_get_carry(2^64, x738₂, x662, x734₁) (* : uint64_t, uint1_t *) in
+ expr_let x740 := Z.add_with_get_carry(2^64, x739₂, x660, x735₁) (* : uint64_t, uint1_t *) in
+ expr_let x741 := Z.add_with_get_carry(2^64, x740₂, x657, x736₁) (* : uint64_t, uint1_t *) in
+ expr_let x742 := Z.add_with_get_carry(2^64, 0, 0, x737₁) (* : uint64_t, uint1_t *) in
+ expr_let x743 := Z.add_with_get_carry(2^64, x742₂, x669, x738₁) (* : uint64_t, uint1_t *) in
+ expr_let x744 := Z.add_with_get_carry(2^64, x743₂, x667, x739₁) (* : uint64_t, uint1_t *) in
+ expr_let x745 := Z.add_with_get_carry(2^64, x744₂, x665, x740₁) (* : uint64_t, uint1_t *) in
+ expr_let x746 := Z.add_with_get_carry(2^64, x745₂, x658, x741₁) (* : uint64_t, uint1_t *) in
+ expr_let x747 := Z.add_with_get_carry(2^64, 0, x742₁, x631₁) (* : uint64_t, uint1_t *) in
+ expr_let x748 := Z.add_with_get_carry(2^64, x747₂, x743₁, x632₁) (* : uint64_t, uint1_t *) in
+ expr_let x749 := Z.add_with_get_carry(2^64, x748₂, x744₁, x633₁) (* : uint64_t, uint1_t *) in
+ expr_let x750 := Z.add_with_get_carry(2^64, x749₂, x745₁, x634₁) (* : uint64_t, uint1_t *) in
+ expr_let x751 := Z.add_with_get_carry(2^64, x750₂, x746₁, x635₁) (* : uint64_t, uint1_t *) in
+ expr_let x752 := (Z.mul_split(2^64, x747₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x753 := Z.mul_split(2^64, x752, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x754 := Z.mul_split(2^64, x752, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x755 := Z.mul_split(2^64, x752, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x756 := Z.mul_split(2^64, x752, 1) (* : uint64_t, uint1_t *) in
+ expr_let x757 := x753₂ * 1 (* : uint64_t *) in
+ expr_let x758 := x753₁ * 1 (* : uint64_t *) in
+ expr_let x759 := x754₂ * 1 (* : uint64_t *) in
+ expr_let x760 := x754₁ * 1 (* : uint64_t *) in
+ expr_let x761 := x755₂ * 1 (* : uint64_t *) in
+ expr_let x762 := x755₁ * 1 (* : uint64_t *) in
+ expr_let x763 := x756₂ * 1 (* : uint1_t *) in
+ expr_let x764 := x756₁ * 1 (* : uint64_t *) in
+ expr_let x765 := Z.add_with_get_carry(2^64, 0, 0, x764) (* : uint64_t, uint1_t *) in
+ expr_let x766 := Z.add_with_get_carry(2^64, x765₂, 0, x763) (* : uint1_t, uint1_t *) in
+ expr_let x767 := Z.add_with_get_carry(2^64, x766₂, 0, x761) (* : uint64_t, uint1_t *) in
+ expr_let x768 := Z.add_with_get_carry(2^64, x767₂, 0, x759) (* : uint64_t, uint1_t *) in
+ expr_let x769 := Z.add_with_get_carry(2^64, x768₂, 0, x757) (* : uint64_t, uint1_t *) in
+ expr_let x770 := Z.add_with_get_carry(2^64, 0, 0, x765₁) (* : uint64_t, uint1_t *) in
+ expr_let x771 := Z.add_with_get_carry(2^64, x770₂, 0, x766₁) (* : uint1_t, uint1_t *) in
+ expr_let x772 := Z.add_with_get_carry(2^64, x771₂, 0, x767₁) (* : uint64_t, uint1_t *) in
+ expr_let x773 := Z.add_with_get_carry(2^64, x772₂, 0, x768₁) (* : uint64_t, uint1_t *) in
+ expr_let x774 := Z.add_with_get_carry(2^64, x773₂, 0, x769₁) (* : uint64_t, uint1_t *) in
+ expr_let x775 := Z.add_with_get_carry(2^64, 0, 0, x770₁) (* : uint64_t, uint1_t *) in
+ expr_let x776 := Z.add_with_get_carry(2^64, x775₂, 0, x771₁) (* : uint1_t, uint1_t *) in
+ expr_let x777 := Z.add_with_get_carry(2^64, x776₂, 0, x772₁) (* : uint64_t, uint1_t *) in
+ expr_let x778 := Z.add_with_get_carry(2^64, x777₂, 0, x773₁) (* : uint64_t, uint1_t *) in
+ expr_let x779 := Z.add_with_get_carry(2^64, x778₂, 0, x774₁) (* : uint64_t, uint1_t *) in
+ expr_let x780 := Z.add_with_get_carry(2^64, 0, 0, x775₁) (* : uint64_t, uint1_t *) in
+ expr_let x781 := Z.add_with_get_carry(2^64, x780₂, 0, x776₁) (* : uint1_t, uint1_t *) in
+ expr_let x782 := Z.add_with_get_carry(2^64, x781₂, 0, x777₁) (* : uint64_t, uint1_t *) in
+ expr_let x783 := Z.add_with_get_carry(2^64, x782₂, 0, x778₁) (* : uint64_t, uint1_t *) in
+ expr_let x784 := Z.add_with_get_carry(2^64, x783₂, 0, x779₁) (* : uint64_t, uint1_t *) in
+ expr_let x785 := Z.add_with_get_carry(2^64, 0, 0, x780₁) (* : uint64_t, uint1_t *) in
+ expr_let x786 := Z.add_with_get_carry(2^64, x785₂, 0, x781₁) (* : uint1_t, uint1_t *) in
+ expr_let x787 := Z.add_with_get_carry(2^64, x786₂, 0, x782₁) (* : uint64_t, uint1_t *) in
+ expr_let x788 := Z.add_with_get_carry(2^64, x787₂, 0, x783₁) (* : uint64_t, uint1_t *) in
+ expr_let x789 := Z.add_with_get_carry(2^64, x788₂, 0, x784₁) (* : uint64_t, uint1_t *) in
+ expr_let x790 := Z.add_with_get_carry(2^64, 0, 0, x785₁) (* : uint64_t, uint1_t *) in
+ expr_let x791 := Z.add_with_get_carry(2^64, x790₂, 0, x786₁) (* : uint1_t, uint1_t *) in
+ expr_let x792 := Z.add_with_get_carry(2^64, x791₂, 0, x787₁) (* : uint64_t, uint1_t *) in
+ expr_let x793 := Z.add_with_get_carry(2^64, x792₂, 0, x788₁) (* : uint64_t, uint1_t *) in
+ expr_let x794 := Z.add_with_get_carry(2^64, x793₂, 0, x789₁) (* : uint64_t, uint1_t *) in
+ expr_let x795 := Z.add_with_get_carry(2^64, 0, 0, x790₁) (* : uint64_t, uint1_t *) in
+ expr_let x796 := Z.add_with_get_carry(2^64, x795₂, 0, x791₁) (* : uint1_t, uint1_t *) in
+ expr_let x797 := Z.add_with_get_carry(2^64, x796₂, 0, x792₁) (* : uint64_t, uint1_t *) in
+ expr_let x798 := Z.add_with_get_carry(2^64, x797₂, 0, x793₁) (* : uint64_t, uint1_t *) in
+ expr_let x799 := Z.add_with_get_carry(2^64, x798₂, 0, x794₁) (* : uint64_t, uint1_t *) in
+ expr_let x800 := Z.add_with_get_carry(2^64, 0, 0, x795₁) (* : uint64_t, uint1_t *) in
+ expr_let x801 := Z.add_with_get_carry(2^64, x800₂, 0, x796₁) (* : uint1_t, uint1_t *) in
+ expr_let x802 := Z.add_with_get_carry(2^64, x801₂, 0, x797₁) (* : uint64_t, uint1_t *) in
+ expr_let x803 := Z.add_with_get_carry(2^64, x802₂, 0, x798₁) (* : uint64_t, uint1_t *) in
+ expr_let x804 := Z.add_with_get_carry(2^64, x803₂, 0, x799₁) (* : uint64_t, uint1_t *) in
+ expr_let x805 := Z.add_with_get_carry(2^64, 0, 0, x800₁) (* : uint64_t, uint1_t *) in
+ expr_let x806 := Z.add_with_get_carry(2^64, x805₂, 0, x801₁) (* : uint1_t, uint1_t *) in
+ expr_let x807 := Z.add_with_get_carry(2^64, x806₂, 0, x802₁) (* : uint64_t, uint1_t *) in
+ expr_let x808 := Z.add_with_get_carry(2^64, x807₂, 0, x803₁) (* : uint64_t, uint1_t *) in
+ expr_let x809 := Z.add_with_get_carry(2^64, x808₂, 0, x804₁) (* : uint64_t, uint1_t *) in
+ expr_let x810 := Z.add_with_get_carry(2^64, 0, 0, x805₁) (* : uint64_t, uint1_t *) in
+ expr_let x811 := Z.add_with_get_carry(2^64, x810₂, 0, x806₁) (* : uint1_t, uint1_t *) in
+ expr_let x812 := Z.add_with_get_carry(2^64, x811₂, 0, x807₁) (* : uint64_t, uint1_t *) in
+ expr_let x813 := Z.add_with_get_carry(2^64, x812₂, 0, x808₁) (* : uint64_t, uint1_t *) in
+ expr_let x814 := Z.add_with_get_carry(2^64, x813₂, 0, x809₁) (* : uint64_t, uint1_t *) in
+ expr_let x815 := Z.add_with_get_carry(2^64, 0, 0, x810₁) (* : uint64_t, uint1_t *) in
+ expr_let x816 := Z.add_with_get_carry(2^64, x815₂, 0, x811₁) (* : uint1_t, uint1_t *) in
+ expr_let x817 := Z.add_with_get_carry(2^64, x816₂, 0, x812₁) (* : uint64_t, uint1_t *) in
+ expr_let x818 := Z.add_with_get_carry(2^64, x817₂, 0, x813₁) (* : uint64_t, uint1_t *) in
+ expr_let x819 := Z.add_with_get_carry(2^64, x818₂, 0, x814₁) (* : uint64_t, uint1_t *) in
+ expr_let x820 := Z.add_with_get_carry(2^64, 0, 0, x815₁) (* : uint64_t, uint1_t *) in
+ expr_let x821 := Z.add_with_get_carry(2^64, x820₂, 0, x816₁) (* : uint1_t, uint1_t *) in
+ expr_let x822 := Z.add_with_get_carry(2^64, x821₂, 0, x817₁) (* : uint64_t, uint1_t *) in
+ expr_let x823 := Z.add_with_get_carry(2^64, x822₂, 0, x818₁) (* : uint64_t, uint1_t *) in
+ expr_let x824 := Z.add_with_get_carry(2^64, x823₂, 0, x819₁) (* : uint64_t, uint1_t *) in
+ expr_let x825 := Z.add_with_get_carry(2^64, 0, 0, x820₁) (* : uint64_t, uint1_t *) in
+ expr_let x826 := Z.add_with_get_carry(2^64, x825₂, 0, x821₁) (* : uint1_t, uint1_t *) in
+ expr_let x827 := Z.add_with_get_carry(2^64, x826₂, 0, x822₁) (* : uint64_t, uint1_t *) in
+ expr_let x828 := Z.add_with_get_carry(2^64, x827₂, 0, x823₁) (* : uint64_t, uint1_t *) in
+ expr_let x829 := Z.add_with_get_carry(2^64, x828₂, 0, x824₁) (* : uint64_t, uint1_t *) in
+ expr_let x830 := Z.add_with_get_carry(2^64, 0, 0, x825₁) (* : uint64_t, uint1_t *) in
+ expr_let x831 := Z.add_with_get_carry(2^64, x830₂, 0, x826₁) (* : uint1_t, uint1_t *) in
+ expr_let x832 := Z.add_with_get_carry(2^64, x831₂, 0, x827₁) (* : uint64_t, uint1_t *) in
+ expr_let x833 := Z.add_with_get_carry(2^64, x832₂, 0, x828₁) (* : uint64_t, uint1_t *) in
+ expr_let x834 := Z.add_with_get_carry(2^64, x833₂, 0, x829₁) (* : uint64_t, uint1_t *) in
+ expr_let x835 := Z.add_with_get_carry(2^64, 0, 0, x830₁) (* : uint64_t, uint1_t *) in
+ expr_let x836 := Z.add_with_get_carry(2^64, x835₂, x762, x831₁) (* : uint64_t, uint1_t *) in
+ expr_let x837 := Z.add_with_get_carry(2^64, x836₂, x760, x832₁) (* : uint64_t, uint1_t *) in
+ expr_let x838 := Z.add_with_get_carry(2^64, x837₂, x758, x833₁) (* : uint64_t, uint1_t *) in
+ expr_let x839 := Z.add_with_get_carry(2^64, x838₂, 0, x834₁) (* : uint64_t, uint1_t *) in
+ expr_let x840 := Z.add_with_get_carry(2^64, 0, x835₁, x747₁) (* : uint64_t, uint1_t *) in
+ expr_let x841 := Z.add_with_get_carry(2^64, x840₂, x836₁, x748₁) (* : uint64_t, uint1_t *) in
+ expr_let x842 := Z.add_with_get_carry(2^64, x841₂, x837₁, x749₁) (* : uint64_t, uint1_t *) in
+ expr_let x843 := Z.add_with_get_carry(2^64, x842₂, x838₁, x750₁) (* : uint64_t, uint1_t *) in
+ expr_let x844 := Z.add_with_get_carry(2^64, x843₂, x839₁, x751₁) (* : uint64_t, uint1_t *) in
+ expr_let x845 := Z.add_with_get_carry(2^64, x844₂, 0, x751₂) (* : uint64_t, uint1_t *) in
+ expr_let x846 := Z.add_with_get_carry(2^64, 0, -1, x841₁) (* : uint64_t, int1_t *) in
+ expr_let x847 := Z.add_with_get_carry(2^64, x846₂, -0xffffffff00000000, x842₁) (* : uint64_t, int1_t *) in
+ expr_let x848 := Z.add_with_get_carry(2^64, x847₂, -(2^64-1), x843₁) (* : uint64_t, int1_t *) in
+ expr_let x849 := Z.add_with_get_carry(2^64, x848₂, -(2^32-1), x844₁) (* : uint64_t, int1_t *) in
+ expr_let x850 := Z.add_with_get_carry(2^64, x849₂, 0, x845₁) (* : uint64_t, int1_t *) in
+ expr_let x851 := Z.zselect((-x850₂), x846₁, x841₁) (* : uint64_t *) in
+ expr_let x852 := Z.zselect((-x850₂), x847₁, x842₁) (* : uint64_t *) in
+ expr_let x853 := Z.zselect((-x850₂), x848₁, x843₁) (* : uint64_t *) in
+ expr_let x854 := Z.zselect((-x850₂), x849₁, x844₁) (* : uint64_t *) in
+ x851 :: x852 :: x853 :: x854 :: []
+)
+Error in converting fiat_p224_square to C:
+Invalid identifier in arithmetic expression Z.mul_split
-/*
- * Input Bounds:
- * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * Output Bounds:
- * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- */
-static void fiat_p224_mul(uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) {
- uint64_t x1 = (arg1[1]);
- uint64_t x2 = (arg1[2]);
- uint64_t x3 = (arg1[3]);
- uint64_t x4 = (arg1[0]);
- uint64_t x5;
- uint64_t x6;
- fiat_p224_mulx_u64(&x5, &x6, x4, (arg2[3]));
- uint64_t x7;
- uint64_t x8;
- fiat_p224_mulx_u64(&x7, &x8, x4, (arg2[2]));
- uint64_t x9;
- uint64_t x10;
- fiat_p224_mulx_u64(&x9, &x10, x4, (arg2[1]));
- uint64_t x11;
- uint64_t x12;
- fiat_p224_mulx_u64(&x11, &x12, x4, (arg2[0]));
- uint64_t x13;
- fiat_p224_uint1 x14;
- fiat_p224_addcarryx_u64(&x13, &x14, 0x0, x9, x12);
- uint64_t x15;
- fiat_p224_uint1 x16;
- fiat_p224_addcarryx_u64(&x15, &x16, x14, x7, x10);
- uint64_t x17;
- fiat_p224_uint1 x18;
- fiat_p224_addcarryx_u64(&x17, &x18, x16, x5, x8);
- uint64_t x19;
- fiat_p224_uint1 x20;
- fiat_p224_addcarryx_u64(&x19, &x20, x18, 0x0, x6);
- uint64_t x21;
- uint64_t x22;
- fiat_p224_mulx_u64(&x21, &x22, x11, UINT64_C(0xffffffffffffffff));
- uint64_t x23;
- uint64_t x24;
- fiat_p224_mulx_u64(&x23, &x24, x21, UINT32_C(0xffffffff));
- uint64_t x25;
- uint64_t x26;
- fiat_p224_mulx_u64(&x25, &x26, x21, UINT64_C(0xffffffffffffffff));
- uint64_t x27;
- uint64_t x28;
- fiat_p224_mulx_u64(&x27, &x28, x21, UINT64_C(0xffffffff00000000));
- uint64_t x29;
- fiat_p224_uint1 x30;
- fiat_p224_addcarryx_u64(&x29, &x30, 0x0, x25, x28);
- uint64_t x31;
- fiat_p224_uint1 x32;
- fiat_p224_addcarryx_u64(&x31, &x32, x30, x23, x26);
- uint64_t x33;
- fiat_p224_uint1 x34;
- fiat_p224_addcarryx_u64(&x33, &x34, x32, 0x0, x24);
- uint64_t x35;
- fiat_p224_uint1 x36;
- fiat_p224_addcarryx_u64(&x35, &x36, 0x0, x21, x11);
- uint64_t x37;
- fiat_p224_uint1 x38;
- fiat_p224_addcarryx_u64(&x37, &x38, x36, x27, x13);
- uint64_t x39;
- fiat_p224_uint1 x40;
- fiat_p224_addcarryx_u64(&x39, &x40, x38, x29, x15);
- uint64_t x41;
- fiat_p224_uint1 x42;
- fiat_p224_addcarryx_u64(&x41, &x42, x40, x31, x17);
- uint64_t x43;
- fiat_p224_uint1 x44;
- fiat_p224_addcarryx_u64(&x43, &x44, x42, x33, x19);
- uint64_t x45;
- fiat_p224_uint1 x46;
- fiat_p224_addcarryx_u64(&x45, &x46, x44, 0x0, 0x0);
- uint64_t x47;
- uint64_t x48;
- fiat_p224_mulx_u64(&x47, &x48, x1, (arg2[3]));
- uint64_t x49;
- uint64_t x50;
- fiat_p224_mulx_u64(&x49, &x50, x1, (arg2[2]));
- uint64_t x51;
- uint64_t x52;
- fiat_p224_mulx_u64(&x51, &x52, x1, (arg2[1]));
- uint64_t x53;
- uint64_t x54;
- fiat_p224_mulx_u64(&x53, &x54, x1, (arg2[0]));
- uint64_t x55;
- fiat_p224_uint1 x56;
- fiat_p224_addcarryx_u64(&x55, &x56, 0x0, x51, x54);
- uint64_t x57;
- fiat_p224_uint1 x58;
- fiat_p224_addcarryx_u64(&x57, &x58, x56, x49, x52);
- uint64_t x59;
- fiat_p224_uint1 x60;
- fiat_p224_addcarryx_u64(&x59, &x60, x58, x47, x50);
- uint64_t x61;
- fiat_p224_uint1 x62;
- fiat_p224_addcarryx_u64(&x61, &x62, x60, 0x0, x48);
- uint64_t x63;
- fiat_p224_uint1 x64;
- fiat_p224_addcarryx_u64(&x63, &x64, 0x0, x53, x37);
- uint64_t x65;
- fiat_p224_uint1 x66;
- fiat_p224_addcarryx_u64(&x65, &x66, x64, x55, x39);
- uint64_t x67;
- fiat_p224_uint1 x68;
- fiat_p224_addcarryx_u64(&x67, &x68, x66, x57, x41);
- uint64_t x69;
- fiat_p224_uint1 x70;
- fiat_p224_addcarryx_u64(&x69, &x70, x68, x59, x43);
- uint64_t x71;
- fiat_p224_uint1 x72;
- fiat_p224_addcarryx_u64(&x71, &x72, x70, x61, (fiat_p224_uint1)x45);
- uint64_t x73;
- uint64_t x74;
- fiat_p224_mulx_u64(&x73, &x74, x63, UINT64_C(0xffffffffffffffff));
- uint64_t x75;
- uint64_t x76;
- fiat_p224_mulx_u64(&x75, &x76, x73, UINT32_C(0xffffffff));
- uint64_t x77;
- uint64_t x78;
- fiat_p224_mulx_u64(&x77, &x78, x73, UINT64_C(0xffffffffffffffff));
- uint64_t x79;
- uint64_t x80;
- fiat_p224_mulx_u64(&x79, &x80, x73, UINT64_C(0xffffffff00000000));
- uint64_t x81;
- fiat_p224_uint1 x82;
- fiat_p224_addcarryx_u64(&x81, &x82, 0x0, x77, x80);
- uint64_t x83;
- fiat_p224_uint1 x84;
- fiat_p224_addcarryx_u64(&x83, &x84, x82, x75, x78);
- uint64_t x85;
- fiat_p224_uint1 x86;
- fiat_p224_addcarryx_u64(&x85, &x86, x84, 0x0, x76);
- uint64_t x87;
- fiat_p224_uint1 x88;
- fiat_p224_addcarryx_u64(&x87, &x88, 0x0, x73, x63);
- uint64_t x89;
- fiat_p224_uint1 x90;
- fiat_p224_addcarryx_u64(&x89, &x90, x88, x79, x65);
- uint64_t x91;
- fiat_p224_uint1 x92;
- fiat_p224_addcarryx_u64(&x91, &x92, x90, x81, x67);
- uint64_t x93;
- fiat_p224_uint1 x94;
- fiat_p224_addcarryx_u64(&x93, &x94, x92, x83, x69);
- uint64_t x95;
- fiat_p224_uint1 x96;
- fiat_p224_addcarryx_u64(&x95, &x96, x94, x85, x71);
- uint64_t x97;
- fiat_p224_uint1 x98;
- fiat_p224_addcarryx_u64(&x97, &x98, x96, 0x0, x72);
- uint64_t x99;
- uint64_t x100;
- fiat_p224_mulx_u64(&x99, &x100, x2, (arg2[3]));
- uint64_t x101;
- uint64_t x102;
- fiat_p224_mulx_u64(&x101, &x102, x2, (arg2[2]));
- uint64_t x103;
- uint64_t x104;
- fiat_p224_mulx_u64(&x103, &x104, x2, (arg2[1]));
- uint64_t x105;
- uint64_t x106;
- fiat_p224_mulx_u64(&x105, &x106, x2, (arg2[0]));
- uint64_t x107;
- fiat_p224_uint1 x108;
- fiat_p224_addcarryx_u64(&x107, &x108, 0x0, x103, x106);
- uint64_t x109;
- fiat_p224_uint1 x110;
- fiat_p224_addcarryx_u64(&x109, &x110, x108, x101, x104);
- uint64_t x111;
- fiat_p224_uint1 x112;
- fiat_p224_addcarryx_u64(&x111, &x112, x110, x99, x102);
- uint64_t x113;
- fiat_p224_uint1 x114;
- fiat_p224_addcarryx_u64(&x113, &x114, x112, 0x0, x100);
- uint64_t x115;
- fiat_p224_uint1 x116;
- fiat_p224_addcarryx_u64(&x115, &x116, 0x0, x105, x89);
- uint64_t x117;
- fiat_p224_uint1 x118;
- fiat_p224_addcarryx_u64(&x117, &x118, x116, x107, x91);
- uint64_t x119;
- fiat_p224_uint1 x120;
- fiat_p224_addcarryx_u64(&x119, &x120, x118, x109, x93);
- uint64_t x121;
- fiat_p224_uint1 x122;
- fiat_p224_addcarryx_u64(&x121, &x122, x120, x111, x95);
- uint64_t x123;
- fiat_p224_uint1 x124;
- fiat_p224_addcarryx_u64(&x123, &x124, x122, x113, x97);
- uint64_t x125;
- uint64_t x126;
- fiat_p224_mulx_u64(&x125, &x126, x115, UINT64_C(0xffffffffffffffff));
- uint64_t x127;
- uint64_t x128;
- fiat_p224_mulx_u64(&x127, &x128, x125, UINT32_C(0xffffffff));
- uint64_t x129;
- uint64_t x130;
- fiat_p224_mulx_u64(&x129, &x130, x125, UINT64_C(0xffffffffffffffff));
- uint64_t x131;
- uint64_t x132;
- fiat_p224_mulx_u64(&x131, &x132, x125, UINT64_C(0xffffffff00000000));
- uint64_t x133;
- fiat_p224_uint1 x134;
- fiat_p224_addcarryx_u64(&x133, &x134, 0x0, x129, x132);
- uint64_t x135;
- fiat_p224_uint1 x136;
- fiat_p224_addcarryx_u64(&x135, &x136, x134, x127, x130);
- uint64_t x137;
- fiat_p224_uint1 x138;
- fiat_p224_addcarryx_u64(&x137, &x138, x136, 0x0, x128);
- uint64_t x139;
- fiat_p224_uint1 x140;
- fiat_p224_addcarryx_u64(&x139, &x140, 0x0, x125, x115);
- uint64_t x141;
- fiat_p224_uint1 x142;
- fiat_p224_addcarryx_u64(&x141, &x142, x140, x131, x117);
- uint64_t x143;
- fiat_p224_uint1 x144;
- fiat_p224_addcarryx_u64(&x143, &x144, x142, x133, x119);
- uint64_t x145;
- fiat_p224_uint1 x146;
- fiat_p224_addcarryx_u64(&x145, &x146, x144, x135, x121);
- uint64_t x147;
- fiat_p224_uint1 x148;
- fiat_p224_addcarryx_u64(&x147, &x148, x146, x137, x123);
- uint64_t x149;
- fiat_p224_uint1 x150;
- fiat_p224_addcarryx_u64(&x149, &x150, x148, 0x0, x124);
- uint64_t x151;
- uint64_t x152;
- fiat_p224_mulx_u64(&x151, &x152, x3, (arg2[3]));
- uint64_t x153;
- uint64_t x154;
- fiat_p224_mulx_u64(&x153, &x154, x3, (arg2[2]));
- uint64_t x155;
- uint64_t x156;
- fiat_p224_mulx_u64(&x155, &x156, x3, (arg2[1]));
- uint64_t x157;
- uint64_t x158;
- fiat_p224_mulx_u64(&x157, &x158, x3, (arg2[0]));
- uint64_t x159;
- fiat_p224_uint1 x160;
- fiat_p224_addcarryx_u64(&x159, &x160, 0x0, x155, x158);
- uint64_t x161;
- fiat_p224_uint1 x162;
- fiat_p224_addcarryx_u64(&x161, &x162, x160, x153, x156);
- uint64_t x163;
- fiat_p224_uint1 x164;
- fiat_p224_addcarryx_u64(&x163, &x164, x162, x151, x154);
- uint64_t x165;
- fiat_p224_uint1 x166;
- fiat_p224_addcarryx_u64(&x165, &x166, x164, 0x0, x152);
- uint64_t x167;
- fiat_p224_uint1 x168;
- fiat_p224_addcarryx_u64(&x167, &x168, 0x0, x157, x141);
- uint64_t x169;
- fiat_p224_uint1 x170;
- fiat_p224_addcarryx_u64(&x169, &x170, x168, x159, x143);
- uint64_t x171;
- fiat_p224_uint1 x172;
- fiat_p224_addcarryx_u64(&x171, &x172, x170, x161, x145);
- uint64_t x173;
- fiat_p224_uint1 x174;
- fiat_p224_addcarryx_u64(&x173, &x174, x172, x163, x147);
- uint64_t x175;
- fiat_p224_uint1 x176;
- fiat_p224_addcarryx_u64(&x175, &x176, x174, x165, x149);
- uint64_t x177;
- uint64_t x178;
- fiat_p224_mulx_u64(&x177, &x178, x167, UINT64_C(0xffffffffffffffff));
- uint64_t x179;
- uint64_t x180;
- fiat_p224_mulx_u64(&x179, &x180, x177, UINT32_C(0xffffffff));
- uint64_t x181;
- uint64_t x182;
- fiat_p224_mulx_u64(&x181, &x182, x177, UINT64_C(0xffffffffffffffff));
- uint64_t x183;
- uint64_t x184;
- fiat_p224_mulx_u64(&x183, &x184, x177, UINT64_C(0xffffffff00000000));
- uint64_t x185;
- fiat_p224_uint1 x186;
- fiat_p224_addcarryx_u64(&x185, &x186, 0x0, x181, x184);
- uint64_t x187;
- fiat_p224_uint1 x188;
- fiat_p224_addcarryx_u64(&x187, &x188, x186, x179, x182);
- uint64_t x189;
- fiat_p224_uint1 x190;
- fiat_p224_addcarryx_u64(&x189, &x190, x188, 0x0, x180);
- uint64_t x191;
- fiat_p224_uint1 x192;
- fiat_p224_addcarryx_u64(&x191, &x192, 0x0, x177, x167);
- uint64_t x193;
- fiat_p224_uint1 x194;
- fiat_p224_addcarryx_u64(&x193, &x194, x192, x183, x169);
- uint64_t x195;
- fiat_p224_uint1 x196;
- fiat_p224_addcarryx_u64(&x195, &x196, x194, x185, x171);
- uint64_t x197;
- fiat_p224_uint1 x198;
- fiat_p224_addcarryx_u64(&x197, &x198, x196, x187, x173);
- uint64_t x199;
- fiat_p224_uint1 x200;
- fiat_p224_addcarryx_u64(&x199, &x200, x198, x189, x175);
- uint64_t x201;
- fiat_p224_uint1 x202;
- fiat_p224_addcarryx_u64(&x201, &x202, x200, 0x0, x176);
- uint64_t x203;
- fiat_p224_uint1 x204;
- fiat_p224_subborrowx_u64(&x203, &x204, 0x0, x193, 0x1);
- uint64_t x205;
- fiat_p224_uint1 x206;
- fiat_p224_subborrowx_u64(&x205, &x206, x204, x195, UINT64_C(0xffffffff00000000));
- uint64_t x207;
- fiat_p224_uint1 x208;
- fiat_p224_subborrowx_u64(&x207, &x208, x206, x197, UINT64_C(0xffffffffffffffff));
- uint64_t x209;
- fiat_p224_uint1 x210;
- fiat_p224_subborrowx_u64(&x209, &x210, x208, x199, UINT32_C(0xffffffff));
- uint64_t x211;
- fiat_p224_uint1 x212;
- fiat_p224_subborrowx_u64(&x211, &x212, x210, x201, 0x0);
- uint64_t x213;
- fiat_p224_cmovznz_u64(&x213, x212, x203, x193);
- uint64_t x214;
- fiat_p224_cmovznz_u64(&x214, x212, x205, x195);
- uint64_t x215;
- fiat_p224_cmovznz_u64(&x215, x212, x207, x197);
- uint64_t x216;
- fiat_p224_cmovznz_u64(&x216, x212, x209, x199);
- out1[0] = x213;
- out1[1] = x214;
- out1[2] = x215;
- out1[3] = x216;
-}
-/*
- * Input Bounds:
- * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * Output Bounds:
- * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- */
-static void fiat_p224_square(uint64_t out1[4], const uint64_t arg1[4]) {
- uint64_t x1 = (arg1[1]);
- uint64_t x2 = (arg1[2]);
- uint64_t x3 = (arg1[3]);
- uint64_t x4 = (arg1[0]);
- uint64_t x5;
- uint64_t x6;
- fiat_p224_mulx_u64(&x5, &x6, x4, (arg1[3]));
- uint64_t x7;
- uint64_t x8;
- fiat_p224_mulx_u64(&x7, &x8, x4, (arg1[2]));
- uint64_t x9;
- uint64_t x10;
- fiat_p224_mulx_u64(&x9, &x10, x4, (arg1[1]));
- uint64_t x11;
- uint64_t x12;
- fiat_p224_mulx_u64(&x11, &x12, x4, (arg1[0]));
- uint64_t x13;
- fiat_p224_uint1 x14;
- fiat_p224_addcarryx_u64(&x13, &x14, 0x0, x9, x12);
- uint64_t x15;
- fiat_p224_uint1 x16;
- fiat_p224_addcarryx_u64(&x15, &x16, x14, x7, x10);
- uint64_t x17;
- fiat_p224_uint1 x18;
- fiat_p224_addcarryx_u64(&x17, &x18, x16, x5, x8);
- uint64_t x19;
- fiat_p224_uint1 x20;
- fiat_p224_addcarryx_u64(&x19, &x20, x18, 0x0, x6);
- uint64_t x21;
- uint64_t x22;
- fiat_p224_mulx_u64(&x21, &x22, x11, UINT64_C(0xffffffffffffffff));
- uint64_t x23;
- uint64_t x24;
- fiat_p224_mulx_u64(&x23, &x24, x21, UINT32_C(0xffffffff));
- uint64_t x25;
- uint64_t x26;
- fiat_p224_mulx_u64(&x25, &x26, x21, UINT64_C(0xffffffffffffffff));
- uint64_t x27;
- uint64_t x28;
- fiat_p224_mulx_u64(&x27, &x28, x21, UINT64_C(0xffffffff00000000));
- uint64_t x29;
- fiat_p224_uint1 x30;
- fiat_p224_addcarryx_u64(&x29, &x30, 0x0, x25, x28);
- uint64_t x31;
- fiat_p224_uint1 x32;
- fiat_p224_addcarryx_u64(&x31, &x32, x30, x23, x26);
- uint64_t x33;
- fiat_p224_uint1 x34;
- fiat_p224_addcarryx_u64(&x33, &x34, x32, 0x0, x24);
- uint64_t x35;
- fiat_p224_uint1 x36;
- fiat_p224_addcarryx_u64(&x35, &x36, 0x0, x21, x11);
- uint64_t x37;
- fiat_p224_uint1 x38;
- fiat_p224_addcarryx_u64(&x37, &x38, x36, x27, x13);
- uint64_t x39;
- fiat_p224_uint1 x40;
- fiat_p224_addcarryx_u64(&x39, &x40, x38, x29, x15);
- uint64_t x41;
- fiat_p224_uint1 x42;
- fiat_p224_addcarryx_u64(&x41, &x42, x40, x31, x17);
- uint64_t x43;
- fiat_p224_uint1 x44;
- fiat_p224_addcarryx_u64(&x43, &x44, x42, x33, x19);
- uint64_t x45;
- fiat_p224_uint1 x46;
- fiat_p224_addcarryx_u64(&x45, &x46, x44, 0x0, 0x0);
- uint64_t x47;
- uint64_t x48;
- fiat_p224_mulx_u64(&x47, &x48, x1, (arg1[3]));
- uint64_t x49;
- uint64_t x50;
- fiat_p224_mulx_u64(&x49, &x50, x1, (arg1[2]));
- uint64_t x51;
- uint64_t x52;
- fiat_p224_mulx_u64(&x51, &x52, x1, (arg1[1]));
- uint64_t x53;
- uint64_t x54;
- fiat_p224_mulx_u64(&x53, &x54, x1, (arg1[0]));
- uint64_t x55;
- fiat_p224_uint1 x56;
- fiat_p224_addcarryx_u64(&x55, &x56, 0x0, x51, x54);
- uint64_t x57;
- fiat_p224_uint1 x58;
- fiat_p224_addcarryx_u64(&x57, &x58, x56, x49, x52);
- uint64_t x59;
- fiat_p224_uint1 x60;
- fiat_p224_addcarryx_u64(&x59, &x60, x58, x47, x50);
- uint64_t x61;
- fiat_p224_uint1 x62;
- fiat_p224_addcarryx_u64(&x61, &x62, x60, 0x0, x48);
- uint64_t x63;
- fiat_p224_uint1 x64;
- fiat_p224_addcarryx_u64(&x63, &x64, 0x0, x53, x37);
- uint64_t x65;
- fiat_p224_uint1 x66;
- fiat_p224_addcarryx_u64(&x65, &x66, x64, x55, x39);
- uint64_t x67;
- fiat_p224_uint1 x68;
- fiat_p224_addcarryx_u64(&x67, &x68, x66, x57, x41);
- uint64_t x69;
- fiat_p224_uint1 x70;
- fiat_p224_addcarryx_u64(&x69, &x70, x68, x59, x43);
- uint64_t x71;
- fiat_p224_uint1 x72;
- fiat_p224_addcarryx_u64(&x71, &x72, x70, x61, (fiat_p224_uint1)x45);
- uint64_t x73;
- uint64_t x74;
- fiat_p224_mulx_u64(&x73, &x74, x63, UINT64_C(0xffffffffffffffff));
- uint64_t x75;
- uint64_t x76;
- fiat_p224_mulx_u64(&x75, &x76, x73, UINT32_C(0xffffffff));
- uint64_t x77;
- uint64_t x78;
- fiat_p224_mulx_u64(&x77, &x78, x73, UINT64_C(0xffffffffffffffff));
- uint64_t x79;
- uint64_t x80;
- fiat_p224_mulx_u64(&x79, &x80, x73, UINT64_C(0xffffffff00000000));
- uint64_t x81;
- fiat_p224_uint1 x82;
- fiat_p224_addcarryx_u64(&x81, &x82, 0x0, x77, x80);
- uint64_t x83;
- fiat_p224_uint1 x84;
- fiat_p224_addcarryx_u64(&x83, &x84, x82, x75, x78);
- uint64_t x85;
- fiat_p224_uint1 x86;
- fiat_p224_addcarryx_u64(&x85, &x86, x84, 0x0, x76);
- uint64_t x87;
- fiat_p224_uint1 x88;
- fiat_p224_addcarryx_u64(&x87, &x88, 0x0, x73, x63);
- uint64_t x89;
- fiat_p224_uint1 x90;
- fiat_p224_addcarryx_u64(&x89, &x90, x88, x79, x65);
- uint64_t x91;
- fiat_p224_uint1 x92;
- fiat_p224_addcarryx_u64(&x91, &x92, x90, x81, x67);
- uint64_t x93;
- fiat_p224_uint1 x94;
- fiat_p224_addcarryx_u64(&x93, &x94, x92, x83, x69);
- uint64_t x95;
- fiat_p224_uint1 x96;
- fiat_p224_addcarryx_u64(&x95, &x96, x94, x85, x71);
- uint64_t x97;
- fiat_p224_uint1 x98;
- fiat_p224_addcarryx_u64(&x97, &x98, x96, 0x0, x72);
- uint64_t x99;
- uint64_t x100;
- fiat_p224_mulx_u64(&x99, &x100, x2, (arg1[3]));
- uint64_t x101;
- uint64_t x102;
- fiat_p224_mulx_u64(&x101, &x102, x2, (arg1[2]));
- uint64_t x103;
- uint64_t x104;
- fiat_p224_mulx_u64(&x103, &x104, x2, (arg1[1]));
- uint64_t x105;
- uint64_t x106;
- fiat_p224_mulx_u64(&x105, &x106, x2, (arg1[0]));
- uint64_t x107;
- fiat_p224_uint1 x108;
- fiat_p224_addcarryx_u64(&x107, &x108, 0x0, x103, x106);
- uint64_t x109;
- fiat_p224_uint1 x110;
- fiat_p224_addcarryx_u64(&x109, &x110, x108, x101, x104);
- uint64_t x111;
- fiat_p224_uint1 x112;
- fiat_p224_addcarryx_u64(&x111, &x112, x110, x99, x102);
- uint64_t x113;
- fiat_p224_uint1 x114;
- fiat_p224_addcarryx_u64(&x113, &x114, x112, 0x0, x100);
- uint64_t x115;
- fiat_p224_uint1 x116;
- fiat_p224_addcarryx_u64(&x115, &x116, 0x0, x105, x89);
- uint64_t x117;
- fiat_p224_uint1 x118;
- fiat_p224_addcarryx_u64(&x117, &x118, x116, x107, x91);
- uint64_t x119;
- fiat_p224_uint1 x120;
- fiat_p224_addcarryx_u64(&x119, &x120, x118, x109, x93);
- uint64_t x121;
- fiat_p224_uint1 x122;
- fiat_p224_addcarryx_u64(&x121, &x122, x120, x111, x95);
- uint64_t x123;
- fiat_p224_uint1 x124;
- fiat_p224_addcarryx_u64(&x123, &x124, x122, x113, x97);
- uint64_t x125;
- uint64_t x126;
- fiat_p224_mulx_u64(&x125, &x126, x115, UINT64_C(0xffffffffffffffff));
- uint64_t x127;
- uint64_t x128;
- fiat_p224_mulx_u64(&x127, &x128, x125, UINT32_C(0xffffffff));
- uint64_t x129;
- uint64_t x130;
- fiat_p224_mulx_u64(&x129, &x130, x125, UINT64_C(0xffffffffffffffff));
- uint64_t x131;
- uint64_t x132;
- fiat_p224_mulx_u64(&x131, &x132, x125, UINT64_C(0xffffffff00000000));
- uint64_t x133;
- fiat_p224_uint1 x134;
- fiat_p224_addcarryx_u64(&x133, &x134, 0x0, x129, x132);
- uint64_t x135;
- fiat_p224_uint1 x136;
- fiat_p224_addcarryx_u64(&x135, &x136, x134, x127, x130);
- uint64_t x137;
- fiat_p224_uint1 x138;
- fiat_p224_addcarryx_u64(&x137, &x138, x136, 0x0, x128);
- uint64_t x139;
- fiat_p224_uint1 x140;
- fiat_p224_addcarryx_u64(&x139, &x140, 0x0, x125, x115);
- uint64_t x141;
- fiat_p224_uint1 x142;
- fiat_p224_addcarryx_u64(&x141, &x142, x140, x131, x117);
- uint64_t x143;
- fiat_p224_uint1 x144;
- fiat_p224_addcarryx_u64(&x143, &x144, x142, x133, x119);
- uint64_t x145;
- fiat_p224_uint1 x146;
- fiat_p224_addcarryx_u64(&x145, &x146, x144, x135, x121);
- uint64_t x147;
- fiat_p224_uint1 x148;
- fiat_p224_addcarryx_u64(&x147, &x148, x146, x137, x123);
- uint64_t x149;
- fiat_p224_uint1 x150;
- fiat_p224_addcarryx_u64(&x149, &x150, x148, 0x0, x124);
- uint64_t x151;
- uint64_t x152;
- fiat_p224_mulx_u64(&x151, &x152, x3, (arg1[3]));
- uint64_t x153;
- uint64_t x154;
- fiat_p224_mulx_u64(&x153, &x154, x3, (arg1[2]));
- uint64_t x155;
- uint64_t x156;
- fiat_p224_mulx_u64(&x155, &x156, x3, (arg1[1]));
- uint64_t x157;
- uint64_t x158;
- fiat_p224_mulx_u64(&x157, &x158, x3, (arg1[0]));
- uint64_t x159;
- fiat_p224_uint1 x160;
- fiat_p224_addcarryx_u64(&x159, &x160, 0x0, x155, x158);
- uint64_t x161;
- fiat_p224_uint1 x162;
- fiat_p224_addcarryx_u64(&x161, &x162, x160, x153, x156);
- uint64_t x163;
- fiat_p224_uint1 x164;
- fiat_p224_addcarryx_u64(&x163, &x164, x162, x151, x154);
- uint64_t x165;
- fiat_p224_uint1 x166;
- fiat_p224_addcarryx_u64(&x165, &x166, x164, 0x0, x152);
- uint64_t x167;
- fiat_p224_uint1 x168;
- fiat_p224_addcarryx_u64(&x167, &x168, 0x0, x157, x141);
- uint64_t x169;
- fiat_p224_uint1 x170;
- fiat_p224_addcarryx_u64(&x169, &x170, x168, x159, x143);
- uint64_t x171;
- fiat_p224_uint1 x172;
- fiat_p224_addcarryx_u64(&x171, &x172, x170, x161, x145);
- uint64_t x173;
- fiat_p224_uint1 x174;
- fiat_p224_addcarryx_u64(&x173, &x174, x172, x163, x147);
- uint64_t x175;
- fiat_p224_uint1 x176;
- fiat_p224_addcarryx_u64(&x175, &x176, x174, x165, x149);
- uint64_t x177;
- uint64_t x178;
- fiat_p224_mulx_u64(&x177, &x178, x167, UINT64_C(0xffffffffffffffff));
- uint64_t x179;
- uint64_t x180;
- fiat_p224_mulx_u64(&x179, &x180, x177, UINT32_C(0xffffffff));
- uint64_t x181;
- uint64_t x182;
- fiat_p224_mulx_u64(&x181, &x182, x177, UINT64_C(0xffffffffffffffff));
- uint64_t x183;
- uint64_t x184;
- fiat_p224_mulx_u64(&x183, &x184, x177, UINT64_C(0xffffffff00000000));
- uint64_t x185;
- fiat_p224_uint1 x186;
- fiat_p224_addcarryx_u64(&x185, &x186, 0x0, x181, x184);
- uint64_t x187;
- fiat_p224_uint1 x188;
- fiat_p224_addcarryx_u64(&x187, &x188, x186, x179, x182);
- uint64_t x189;
- fiat_p224_uint1 x190;
- fiat_p224_addcarryx_u64(&x189, &x190, x188, 0x0, x180);
- uint64_t x191;
- fiat_p224_uint1 x192;
- fiat_p224_addcarryx_u64(&x191, &x192, 0x0, x177, x167);
- uint64_t x193;
- fiat_p224_uint1 x194;
- fiat_p224_addcarryx_u64(&x193, &x194, x192, x183, x169);
- uint64_t x195;
- fiat_p224_uint1 x196;
- fiat_p224_addcarryx_u64(&x195, &x196, x194, x185, x171);
- uint64_t x197;
- fiat_p224_uint1 x198;
- fiat_p224_addcarryx_u64(&x197, &x198, x196, x187, x173);
- uint64_t x199;
- fiat_p224_uint1 x200;
- fiat_p224_addcarryx_u64(&x199, &x200, x198, x189, x175);
- uint64_t x201;
- fiat_p224_uint1 x202;
- fiat_p224_addcarryx_u64(&x201, &x202, x200, 0x0, x176);
- uint64_t x203;
- fiat_p224_uint1 x204;
- fiat_p224_subborrowx_u64(&x203, &x204, 0x0, x193, 0x1);
- uint64_t x205;
- fiat_p224_uint1 x206;
- fiat_p224_subborrowx_u64(&x205, &x206, x204, x195, UINT64_C(0xffffffff00000000));
- uint64_t x207;
- fiat_p224_uint1 x208;
- fiat_p224_subborrowx_u64(&x207, &x208, x206, x197, UINT64_C(0xffffffffffffffff));
- uint64_t x209;
- fiat_p224_uint1 x210;
- fiat_p224_subborrowx_u64(&x209, &x210, x208, x199, UINT32_C(0xffffffff));
- uint64_t x211;
- fiat_p224_uint1 x212;
- fiat_p224_subborrowx_u64(&x211, &x212, x210, x201, 0x0);
- uint64_t x213;
- fiat_p224_cmovznz_u64(&x213, x212, x203, x193);
- uint64_t x214;
- fiat_p224_cmovznz_u64(&x214, x212, x205, x195);
- uint64_t x215;
- fiat_p224_cmovznz_u64(&x215, x212, x207, x197);
- uint64_t x216;
- fiat_p224_cmovznz_u64(&x216, x212, x209, x199);
- out1[0] = x213;
- out1[1] = x214;
- out1[2] = x215;
- out1[3] = x216;
-}
+In fiat_p224_add:
+Stringification failed on the syntax tree:
+(λ x1 x2,
+ expr_let x3 := Z.add_with_get_carry(2^64, 0, x2[0], x1[0]) (* : uint64_t, uint1_t *) in
+ expr_let x4 := Z.add_with_get_carry(2^64, x3₂, x2[1], x1[1]) (* : uint64_t, uint1_t *) in
+ expr_let x5 := Z.add_with_get_carry(2^64, x4₂, x2[2], x1[2]) (* : uint64_t, uint1_t *) in
+ expr_let x6 := Z.add_with_get_carry(2^64, x5₂, x2[3], x1[3]) (* : uint64_t, uint1_t *) in
+ expr_let x7 := Z.add_with_get_carry(2^64, 0, -1, x3₁) (* : uint64_t, int1_t *) in
+ expr_let x8 := Z.add_with_get_carry(2^64, x7₂, -0xffffffff00000000, x4₁) (* : uint64_t, int1_t *) in
+ expr_let x9 := Z.add_with_get_carry(2^64, x8₂, -(2^64-1), x5₁) (* : uint64_t, int1_t *) in
+ expr_let x10 := Z.add_with_get_carry(2^64, x9₂, -(2^32-1), x6₁) (* : uint64_t, int1_t *) in
+ expr_let x11 := Z.add_with_get_carry(2^64, x10₂, 0, x6₂) (* : uint64_t, int1_t *) in
+ expr_let x12 := Z.zselect((-x11₂), x7₁, x3₁) (* : uint64_t *) in
+ expr_let x13 := Z.zselect((-x11₂), x8₁, x4₁) (* : uint64_t *) in
+ expr_let x14 := Z.zselect((-x11₂), x9₁, x5₁) (* : uint64_t *) in
+ expr_let x15 := Z.zselect((-x11₂), x10₁, x6₁) (* : uint64_t *) in
+ x12 :: x13 :: x14 :: x15 :: []
+)
+Errors in converting fiat_p224_add to C:
+Final bounds check failed on second argument to Z.add_with_get_carry; expected an unsigned 64-bit number (uint64), but found a int1.
+Final bounds check failed on third argument to Z.add_with_get_carry; expected an unsigned 64-bit number (uint64), but found a int1.
+Final bounds check failed on second (carry) return value of Z.add_with_get_carry; expected an unsigned 1-bit number (uint1), but found a int1.
-/*
- * Input Bounds:
- * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * Output Bounds:
- * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- */
-static void fiat_p224_add(uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) {
- uint64_t x1;
- fiat_p224_uint1 x2;
- fiat_p224_addcarryx_u64(&x1, &x2, 0x0, (arg2[0]), (arg1[0]));
- uint64_t x3;
- fiat_p224_uint1 x4;
- fiat_p224_addcarryx_u64(&x3, &x4, x2, (arg2[1]), (arg1[1]));
- uint64_t x5;
- fiat_p224_uint1 x6;
- fiat_p224_addcarryx_u64(&x5, &x6, x4, (arg2[2]), (arg1[2]));
- uint64_t x7;
- fiat_p224_uint1 x8;
- fiat_p224_addcarryx_u64(&x7, &x8, x6, (arg2[3]), (arg1[3]));
- uint64_t x9;
- fiat_p224_uint1 x10;
- fiat_p224_subborrowx_u64(&x9, &x10, 0x0, x1, 0x1);
- uint64_t x11;
- fiat_p224_uint1 x12;
- fiat_p224_subborrowx_u64(&x11, &x12, x10, x3, UINT64_C(0xffffffff00000000));
- uint64_t x13;
- fiat_p224_uint1 x14;
- fiat_p224_subborrowx_u64(&x13, &x14, x12, x5, UINT64_C(0xffffffffffffffff));
- uint64_t x15;
- fiat_p224_uint1 x16;
- fiat_p224_subborrowx_u64(&x15, &x16, x14, x7, UINT32_C(0xffffffff));
- uint64_t x17;
- fiat_p224_uint1 x18;
- fiat_p224_subborrowx_u64(&x17, &x18, x16, x8, 0x0);
- uint64_t x19;
- fiat_p224_cmovznz_u64(&x19, x18, x9, x1);
- uint64_t x20;
- fiat_p224_cmovznz_u64(&x20, x18, x11, x3);
- uint64_t x21;
- fiat_p224_cmovznz_u64(&x21, x18, x13, x5);
- uint64_t x22;
- fiat_p224_cmovznz_u64(&x22, x18, x15, x7);
- out1[0] = x19;
- out1[1] = x20;
- out1[2] = x21;
- out1[3] = x22;
-}
-/*
- * Input Bounds:
- * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * Output Bounds:
- * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- */
-static void fiat_p224_sub(uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) {
- uint64_t x1;
- fiat_p224_uint1 x2;
- fiat_p224_subborrowx_u64(&x1, &x2, 0x0, (arg1[0]), (arg2[0]));
- uint64_t x3;
- fiat_p224_uint1 x4;
- fiat_p224_subborrowx_u64(&x3, &x4, x2, (arg1[1]), (arg2[1]));
- uint64_t x5;
- fiat_p224_uint1 x6;
- fiat_p224_subborrowx_u64(&x5, &x6, x4, (arg1[2]), (arg2[2]));
- uint64_t x7;
- fiat_p224_uint1 x8;
- fiat_p224_subborrowx_u64(&x7, &x8, x6, (arg1[3]), (arg2[3]));
- uint64_t x9;
- fiat_p224_cmovznz_u64(&x9, x8, 0x0, UINT64_C(0xffffffffffffffff));
- uint64_t x10;
- fiat_p224_uint1 x11;
- fiat_p224_addcarryx_u64(&x10, &x11, 0x0, (fiat_p224_uint1)(x9 & 0x1), x1);
- uint64_t x12;
- fiat_p224_uint1 x13;
- fiat_p224_addcarryx_u64(&x12, &x13, x11, (x9 & UINT64_C(0xffffffff00000000)), x3);
- uint64_t x14;
- fiat_p224_uint1 x15;
- fiat_p224_addcarryx_u64(&x14, &x15, x13, (x9 & UINT64_C(0xffffffffffffffff)), x5);
- uint64_t x16;
- fiat_p224_uint1 x17;
- fiat_p224_addcarryx_u64(&x16, &x17, x15, (x9 & UINT32_C(0xffffffff)), x7);
- out1[0] = x10;
- out1[1] = x12;
- out1[2] = x14;
- out1[3] = x16;
-}
+In fiat_p224_sub:
+Stringification failed on the syntax tree:
+(λ x1 x2,
+ expr_let x3 := Z.sub_get_borrow(2^64, x1[0], x2[0]) (* : uint64_t, uint1_t *) in
+ expr_let x4 := Z.sub_with_get_borrow(2^64, x3₂, x1[1], x2[1]) (* : uint64_t, uint1_t *) in
+ expr_let x5 := Z.sub_with_get_borrow(2^64, x4₂, x1[2], x2[2]) (* : uint64_t, uint1_t *) in
+ expr_let x6 := Z.sub_with_get_borrow(2^64, x5₂, x1[3], x2[3]) (* : uint64_t, uint1_t *) in
+ expr_let x7 := Z.zselect(x6₂, 0, 2^64-1) (* : uint64_t *) in
+ expr_let x8 := Z.add_with_get_carry(2^64, 0, (x7 & 1), x3₁) (* : uint64_t, uint1_t *) in
+ expr_let x9 := Z.add_with_get_carry(2^64, x8₂, (x7 & 0xffffffff00000000), x4₁) (* : uint64_t, uint1_t *) in
+ expr_let x10 := Z.add_with_get_carry(2^64, x9₂, (x7 & 2^64-1), x5₁) (* : uint64_t, uint1_t *) in
+ expr_let x11 := (Z.add_with_get_carry(2^64, x10₂, (x7 & 2^32-1), x6₁))₁ (* : uint64_t *) in
+ x8₁ :: x9₁ :: x10₁ :: x11 :: []
+)
+Error in converting fiat_p224_sub to C:
+Invalid identifier in arithmetic expression Z.add_with_get_carry
-/*
- * Input Bounds:
- * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * Output Bounds:
- * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- */
-static void fiat_p224_opp(uint64_t out1[4], const uint64_t arg1[4]) {
- uint64_t x1;
- fiat_p224_uint1 x2;
- fiat_p224_subborrowx_u64(&x1, &x2, 0x0, 0x0, (arg1[0]));
- uint64_t x3;
- fiat_p224_uint1 x4;
- fiat_p224_subborrowx_u64(&x3, &x4, x2, 0x0, (arg1[1]));
- uint64_t x5;
- fiat_p224_uint1 x6;
- fiat_p224_subborrowx_u64(&x5, &x6, x4, 0x0, (arg1[2]));
- uint64_t x7;
- fiat_p224_uint1 x8;
- fiat_p224_subborrowx_u64(&x7, &x8, x6, 0x0, (arg1[3]));
- uint64_t x9;
- fiat_p224_cmovznz_u64(&x9, x8, 0x0, UINT64_C(0xffffffffffffffff));
- uint64_t x10;
- fiat_p224_uint1 x11;
- fiat_p224_addcarryx_u64(&x10, &x11, 0x0, (fiat_p224_uint1)(x9 & 0x1), x1);
- uint64_t x12;
- fiat_p224_uint1 x13;
- fiat_p224_addcarryx_u64(&x12, &x13, x11, (x9 & UINT64_C(0xffffffff00000000)), x3);
- uint64_t x14;
- fiat_p224_uint1 x15;
- fiat_p224_addcarryx_u64(&x14, &x15, x13, (x9 & UINT64_C(0xffffffffffffffff)), x5);
- uint64_t x16;
- fiat_p224_uint1 x17;
- fiat_p224_addcarryx_u64(&x16, &x17, x15, (x9 & UINT32_C(0xffffffff)), x7);
- out1[0] = x10;
- out1[1] = x12;
- out1[2] = x14;
- out1[3] = x16;
-}
-/*
- * Input Bounds:
- * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * Output Bounds:
- * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- */
-static void fiat_p224_from_montgomery(uint64_t out1[4], const uint64_t arg1[4]) {
- uint64_t x1 = (arg1[0]);
- uint64_t x2;
- uint64_t x3;
- fiat_p224_mulx_u64(&x2, &x3, x1, UINT64_C(0xffffffffffffffff));
- uint64_t x4;
- uint64_t x5;
- fiat_p224_mulx_u64(&x4, &x5, x2, UINT32_C(0xffffffff));
- uint64_t x6;
- uint64_t x7;
- fiat_p224_mulx_u64(&x6, &x7, x2, UINT64_C(0xffffffffffffffff));
- uint64_t x8;
- uint64_t x9;
- fiat_p224_mulx_u64(&x8, &x9, x2, UINT64_C(0xffffffff00000000));
- uint64_t x10;
- fiat_p224_uint1 x11;
- fiat_p224_addcarryx_u64(&x10, &x11, 0x0, x6, x9);
- uint64_t x12;
- fiat_p224_uint1 x13;
- fiat_p224_addcarryx_u64(&x12, &x13, x11, x4, x7);
- uint64_t x14;
- fiat_p224_uint1 x15;
- fiat_p224_addcarryx_u64(&x14, &x15, 0x0, x2, x1);
- uint64_t x16;
- fiat_p224_uint1 x17;
- fiat_p224_addcarryx_u64(&x16, &x17, x15, x8, 0x0);
- uint64_t x18;
- fiat_p224_uint1 x19;
- fiat_p224_addcarryx_u64(&x18, &x19, x17, x10, 0x0);
- uint64_t x20;
- fiat_p224_uint1 x21;
- fiat_p224_addcarryx_u64(&x20, &x21, x19, x12, 0x0);
- uint64_t x22;
- fiat_p224_uint1 x23;
- fiat_p224_addcarryx_u64(&x22, &x23, x13, 0x0, x5);
- uint64_t x24;
- fiat_p224_uint1 x25;
- fiat_p224_addcarryx_u64(&x24, &x25, x21, x22, 0x0);
- uint64_t x26;
- fiat_p224_uint1 x27;
- fiat_p224_addcarryx_u64(&x26, &x27, 0x0, (arg1[1]), x16);
- uint64_t x28;
- fiat_p224_uint1 x29;
- fiat_p224_addcarryx_u64(&x28, &x29, x27, 0x0, x18);
- uint64_t x30;
- fiat_p224_uint1 x31;
- fiat_p224_addcarryx_u64(&x30, &x31, x29, 0x0, x20);
- uint64_t x32;
- fiat_p224_uint1 x33;
- fiat_p224_addcarryx_u64(&x32, &x33, x31, 0x0, x24);
- uint64_t x34;
- fiat_p224_uint1 x35;
- fiat_p224_addcarryx_u64(&x34, &x35, x25, 0x0, 0x0);
- uint64_t x36;
- fiat_p224_uint1 x37;
- fiat_p224_addcarryx_u64(&x36, &x37, x33, 0x0, (fiat_p224_uint1)x34);
- uint64_t x38;
- uint64_t x39;
- fiat_p224_mulx_u64(&x38, &x39, x26, UINT64_C(0xffffffffffffffff));
- uint64_t x40;
- uint64_t x41;
- fiat_p224_mulx_u64(&x40, &x41, x38, UINT32_C(0xffffffff));
- uint64_t x42;
- uint64_t x43;
- fiat_p224_mulx_u64(&x42, &x43, x38, UINT64_C(0xffffffffffffffff));
- uint64_t x44;
- uint64_t x45;
- fiat_p224_mulx_u64(&x44, &x45, x38, UINT64_C(0xffffffff00000000));
- uint64_t x46;
- fiat_p224_uint1 x47;
- fiat_p224_addcarryx_u64(&x46, &x47, 0x0, x42, x45);
- uint64_t x48;
- fiat_p224_uint1 x49;
- fiat_p224_addcarryx_u64(&x48, &x49, x47, x40, x43);
- uint64_t x50;
- fiat_p224_uint1 x51;
- fiat_p224_addcarryx_u64(&x50, &x51, 0x0, x38, x26);
- uint64_t x52;
- fiat_p224_uint1 x53;
- fiat_p224_addcarryx_u64(&x52, &x53, x51, x44, x28);
- uint64_t x54;
- fiat_p224_uint1 x55;
- fiat_p224_addcarryx_u64(&x54, &x55, x53, x46, x30);
- uint64_t x56;
- fiat_p224_uint1 x57;
- fiat_p224_addcarryx_u64(&x56, &x57, x55, x48, x32);
- uint64_t x58;
- fiat_p224_uint1 x59;
- fiat_p224_addcarryx_u64(&x58, &x59, x49, 0x0, x41);
- uint64_t x60;
- fiat_p224_uint1 x61;
- fiat_p224_addcarryx_u64(&x60, &x61, x57, x58, (fiat_p224_uint1)x36);
- uint64_t x62;
- fiat_p224_uint1 x63;
- fiat_p224_addcarryx_u64(&x62, &x63, 0x0, (arg1[2]), x52);
- uint64_t x64;
- fiat_p224_uint1 x65;
- fiat_p224_addcarryx_u64(&x64, &x65, x63, 0x0, x54);
- uint64_t x66;
- fiat_p224_uint1 x67;
- fiat_p224_addcarryx_u64(&x66, &x67, x65, 0x0, x56);
- uint64_t x68;
- fiat_p224_uint1 x69;
- fiat_p224_addcarryx_u64(&x68, &x69, x67, 0x0, x60);
- uint64_t x70;
- fiat_p224_uint1 x71;
- fiat_p224_addcarryx_u64(&x70, &x71, x61, 0x0, x37);
- uint64_t x72;
- fiat_p224_uint1 x73;
- fiat_p224_addcarryx_u64(&x72, &x73, x69, 0x0, (fiat_p224_uint1)x70);
- uint64_t x74;
- uint64_t x75;
- fiat_p224_mulx_u64(&x74, &x75, x62, UINT64_C(0xffffffffffffffff));
- uint64_t x76;
- uint64_t x77;
- fiat_p224_mulx_u64(&x76, &x77, x74, UINT32_C(0xffffffff));
- uint64_t x78;
- uint64_t x79;
- fiat_p224_mulx_u64(&x78, &x79, x74, UINT64_C(0xffffffffffffffff));
- uint64_t x80;
- uint64_t x81;
- fiat_p224_mulx_u64(&x80, &x81, x74, UINT64_C(0xffffffff00000000));
- uint64_t x82;
- fiat_p224_uint1 x83;
- fiat_p224_addcarryx_u64(&x82, &x83, 0x0, x78, x81);
- uint64_t x84;
- fiat_p224_uint1 x85;
- fiat_p224_addcarryx_u64(&x84, &x85, x83, x76, x79);
- uint64_t x86;
- fiat_p224_uint1 x87;
- fiat_p224_addcarryx_u64(&x86, &x87, 0x0, x74, x62);
- uint64_t x88;
- fiat_p224_uint1 x89;
- fiat_p224_addcarryx_u64(&x88, &x89, x87, x80, x64);
- uint64_t x90;
- fiat_p224_uint1 x91;
- fiat_p224_addcarryx_u64(&x90, &x91, x89, x82, x66);
- uint64_t x92;
- fiat_p224_uint1 x93;
- fiat_p224_addcarryx_u64(&x92, &x93, x91, x84, x68);
- uint64_t x94;
- fiat_p224_uint1 x95;
- fiat_p224_addcarryx_u64(&x94, &x95, x85, 0x0, x77);
- uint64_t x96;
- fiat_p224_uint1 x97;
- fiat_p224_addcarryx_u64(&x96, &x97, x93, x94, (fiat_p224_uint1)x72);
- uint64_t x98;
- fiat_p224_uint1 x99;
- fiat_p224_addcarryx_u64(&x98, &x99, 0x0, (arg1[3]), x88);
- uint64_t x100;
- fiat_p224_uint1 x101;
- fiat_p224_addcarryx_u64(&x100, &x101, x99, 0x0, x90);
- uint64_t x102;
- fiat_p224_uint1 x103;
- fiat_p224_addcarryx_u64(&x102, &x103, x101, 0x0, x92);
- uint64_t x104;
- fiat_p224_uint1 x105;
- fiat_p224_addcarryx_u64(&x104, &x105, x103, 0x0, x96);
- uint64_t x106;
- fiat_p224_uint1 x107;
- fiat_p224_addcarryx_u64(&x106, &x107, x97, 0x0, x73);
- uint64_t x108;
- fiat_p224_uint1 x109;
- fiat_p224_addcarryx_u64(&x108, &x109, x105, 0x0, (fiat_p224_uint1)x106);
- uint64_t x110;
- uint64_t x111;
- fiat_p224_mulx_u64(&x110, &x111, x98, UINT64_C(0xffffffffffffffff));
- uint64_t x112;
- uint64_t x113;
- fiat_p224_mulx_u64(&x112, &x113, x110, UINT32_C(0xffffffff));
- uint64_t x114;
- uint64_t x115;
- fiat_p224_mulx_u64(&x114, &x115, x110, UINT64_C(0xffffffffffffffff));
- uint64_t x116;
- uint64_t x117;
- fiat_p224_mulx_u64(&x116, &x117, x110, UINT64_C(0xffffffff00000000));
- uint64_t x118;
- fiat_p224_uint1 x119;
- fiat_p224_addcarryx_u64(&x118, &x119, 0x0, x114, x117);
- uint64_t x120;
- fiat_p224_uint1 x121;
- fiat_p224_addcarryx_u64(&x120, &x121, x119, x112, x115);
- uint64_t x122;
- fiat_p224_uint1 x123;
- fiat_p224_addcarryx_u64(&x122, &x123, 0x0, x110, x98);
- uint64_t x124;
- fiat_p224_uint1 x125;
- fiat_p224_addcarryx_u64(&x124, &x125, x123, x116, x100);
- uint64_t x126;
- fiat_p224_uint1 x127;
- fiat_p224_addcarryx_u64(&x126, &x127, x125, x118, x102);
- uint64_t x128;
- fiat_p224_uint1 x129;
- fiat_p224_addcarryx_u64(&x128, &x129, x127, x120, x104);
- uint64_t x130;
- fiat_p224_uint1 x131;
- fiat_p224_addcarryx_u64(&x130, &x131, x121, 0x0, x113);
- uint64_t x132;
- fiat_p224_uint1 x133;
- fiat_p224_addcarryx_u64(&x132, &x133, x129, x130, (fiat_p224_uint1)x108);
- uint64_t x134;
- fiat_p224_uint1 x135;
- fiat_p224_subborrowx_u64(&x134, &x135, 0x0, x124, 0x1);
- uint64_t x136;
- fiat_p224_uint1 x137;
- fiat_p224_subborrowx_u64(&x136, &x137, x135, x126, UINT64_C(0xffffffff00000000));
- uint64_t x138;
- fiat_p224_uint1 x139;
- fiat_p224_subborrowx_u64(&x138, &x139, x137, x128, UINT64_C(0xffffffffffffffff));
- uint64_t x140;
- fiat_p224_uint1 x141;
- fiat_p224_subborrowx_u64(&x140, &x141, x139, x132, UINT32_C(0xffffffff));
- uint64_t x142;
- fiat_p224_uint1 x143;
- fiat_p224_addcarryx_u64(&x142, &x143, x133, 0x0, x109);
- uint64_t x144;
- fiat_p224_uint1 x145;
- fiat_p224_subborrowx_u64(&x144, &x145, x141, (fiat_p224_uint1)x142, 0x0);
- uint64_t x146;
- fiat_p224_cmovznz_u64(&x146, x145, x134, x124);
- uint64_t x147;
- fiat_p224_cmovznz_u64(&x147, x145, x136, x126);
- uint64_t x148;
- fiat_p224_cmovznz_u64(&x148, x145, x138, x128);
- uint64_t x149;
- fiat_p224_cmovznz_u64(&x149, x145, x140, x132);
- out1[0] = x146;
- out1[1] = x147;
- out1[2] = x148;
- out1[3] = x149;
-}
+In fiat_p224_opp:
+Stringification failed on the syntax tree:
+(λ x1,
+ expr_let x2 := Z.sub_get_borrow(2^64, 0, x1[0]) (* : uint64_t, uint1_t *) in
+ expr_let x3 := Z.sub_with_get_borrow(2^64, x2₂, 0, x1[1]) (* : uint64_t, uint1_t *) in
+ expr_let x4 := Z.sub_with_get_borrow(2^64, x3₂, 0, x1[2]) (* : uint64_t, uint1_t *) in
+ expr_let x5 := Z.sub_with_get_borrow(2^64, x4₂, 0, x1[3]) (* : uint64_t, uint1_t *) in
+ expr_let x6 := Z.zselect(x5₂, 0, 2^64-1) (* : uint64_t *) in
+ expr_let x7 := Z.add_with_get_carry(2^64, 0, (x6 & 1), x2₁) (* : uint64_t, uint1_t *) in
+ expr_let x8 := Z.add_with_get_carry(2^64, x7₂, (x6 & 0xffffffff00000000), x3₁) (* : uint64_t, uint1_t *) in
+ expr_let x9 := Z.add_with_get_carry(2^64, x8₂, (x6 & 2^64-1), x4₁) (* : uint64_t, uint1_t *) in
+ expr_let x10 := (Z.add_with_get_carry(2^64, x9₂, (x6 & 2^32-1), x5₁))₁ (* : uint64_t *) in
+ x7₁ :: x8₁ :: x9₁ :: x10 :: []
+)
+Error in converting fiat_p224_opp to C:
+Invalid identifier in arithmetic expression Z.add_with_get_carry
-/*
- * Input Bounds:
- * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * Output Bounds:
- * out1: [0x0 ~> 0xffffffffffffffff]
- */
-static void fiat_p224_nonzero(uint64_t* out1, const uint64_t arg1[4]) {
- uint64_t x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | (uint64_t)0x0))));
- *out1 = x1;
-}
-/*
- * Input Bounds:
- * arg1: [0x0 ~> 0x1]
- * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- * Output Bounds:
- * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
- */
-static void fiat_p224_selectznz(uint64_t out1[4], fiat_p224_uint1 arg1, const uint64_t arg2[4], const uint64_t arg3[4]) {
- uint64_t x1;
- fiat_p224_cmovznz_u64(&x1, arg1, (arg2[0]), (arg3[0]));
- uint64_t x2;
- fiat_p224_cmovznz_u64(&x2, arg1, (arg2[1]), (arg3[1]));
- uint64_t x3;
- fiat_p224_cmovznz_u64(&x3, arg1, (arg2[2]), (arg3[2]));
- uint64_t x4;
- fiat_p224_cmovznz_u64(&x4, arg1, (arg2[3]), (arg3[3]));
- out1[0] = x1;
- out1[1] = x2;
- out1[2] = x3;
- out1[3] = x4;
-}
-
-/*
- * Input Bounds:
- * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffff]]
- * Output Bounds:
- * out1: [[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 ~> 0x0], [0x0 ~> 0x0], [0x0 ~> 0x0], [0x0 ~> 0x0]]
- */
-static void fiat_p224_to_bytes(uint8_t out1[32], const uint64_t arg1[4]) {
- uint64_t x1 = (arg1[3]);
- uint64_t x2 = (arg1[2]);
- uint64_t x3 = (arg1[1]);
- uint64_t x4 = (arg1[0]);
- uint64_t x5 = (x4 >> 8);
- uint8_t x6 = (uint8_t)(x4 & UINT8_C(0xff));
- uint64_t x7 = (x5 >> 8);
- uint8_t x8 = (uint8_t)(x5 & UINT8_C(0xff));
- uint64_t x9 = (x7 >> 8);
- uint8_t x10 = (uint8_t)(x7 & UINT8_C(0xff));
- uint64_t x11 = (x9 >> 8);
- uint8_t x12 = (uint8_t)(x9 & UINT8_C(0xff));
- uint64_t x13 = (x11 >> 8);
- uint8_t x14 = (uint8_t)(x11 & UINT8_C(0xff));
- uint64_t x15 = (x13 >> 8);
- uint8_t x16 = (uint8_t)(x13 & UINT8_C(0xff));
- uint8_t x17 = (uint8_t)(x15 >> 8);
- uint8_t x18 = (uint8_t)(x15 & UINT8_C(0xff));
- fiat_p224_uint1 x19 = (fiat_p224_uint1)(x17 >> 8);
- uint8_t x20 = (uint8_t)(x17 & UINT8_C(0xff));
- uint64_t x21 = (x19 + x3);
- uint64_t x22 = (x21 >> 8);
- uint8_t x23 = (uint8_t)(x21 & UINT8_C(0xff));
- uint64_t x24 = (x22 >> 8);
- uint8_t x25 = (uint8_t)(x22 & UINT8_C(0xff));
- uint64_t x26 = (x24 >> 8);
- uint8_t x27 = (uint8_t)(x24 & UINT8_C(0xff));
- uint64_t x28 = (x26 >> 8);
- uint8_t x29 = (uint8_t)(x26 & UINT8_C(0xff));
- uint64_t x30 = (x28 >> 8);
- uint8_t x31 = (uint8_t)(x28 & UINT8_C(0xff));
- uint64_t x32 = (x30 >> 8);
- uint8_t x33 = (uint8_t)(x30 & UINT8_C(0xff));
- uint8_t x34 = (uint8_t)(x32 >> 8);
- uint8_t x35 = (uint8_t)(x32 & UINT8_C(0xff));
- fiat_p224_uint1 x36 = (fiat_p224_uint1)(x34 >> 8);
- uint8_t x37 = (uint8_t)(x34 & UINT8_C(0xff));
- uint64_t x38 = (x36 + x2);
- uint64_t x39 = (x38 >> 8);
- uint8_t x40 = (uint8_t)(x38 & UINT8_C(0xff));
- uint64_t x41 = (x39 >> 8);
- uint8_t x42 = (uint8_t)(x39 & UINT8_C(0xff));
- uint64_t x43 = (x41 >> 8);
- uint8_t x44 = (uint8_t)(x41 & UINT8_C(0xff));
- uint64_t x45 = (x43 >> 8);
- uint8_t x46 = (uint8_t)(x43 & UINT8_C(0xff));
- uint64_t x47 = (x45 >> 8);
- uint8_t x48 = (uint8_t)(x45 & UINT8_C(0xff));
- uint64_t x49 = (x47 >> 8);
- uint8_t x50 = (uint8_t)(x47 & UINT8_C(0xff));
- uint8_t x51 = (uint8_t)(x49 >> 8);
- uint8_t x52 = (uint8_t)(x49 & UINT8_C(0xff));
- fiat_p224_uint1 x53 = (fiat_p224_uint1)(x51 >> 8);
- uint8_t x54 = (uint8_t)(x51 & UINT8_C(0xff));
- uint64_t x55 = (x53 + x1);
- uint64_t x56 = (x55 >> 8);
- uint8_t x57 = (uint8_t)(x55 & UINT8_C(0xff));
- uint64_t x58 = (x56 >> 8);
- uint8_t x59 = (uint8_t)(x56 & UINT8_C(0xff));
- uint8_t x60 = (uint8_t)(x58 >> 8);
- uint8_t x61 = (uint8_t)(x58 & UINT8_C(0xff));
- fiat_p224_uint1 x62 = (fiat_p224_uint1)(x60 >> 8);
- uint8_t x63 = (uint8_t)(x60 & UINT8_C(0xff));
- fiat_p224_uint1 x64 = (fiat_p224_uint1)(x62 >> 8);
- fiat_p224_uint1 x65 = (fiat_p224_uint1)(x62 & UINT8_C(0xff));
- fiat_p224_uint1 x66 = (fiat_p224_uint1)(x64 >> 8);
- fiat_p224_uint1 x67 = (fiat_p224_uint1)(x64 & UINT8_C(0xff));
- fiat_p224_uint1 x68 = (fiat_p224_uint1)(x66 >> 8);
- fiat_p224_uint1 x69 = (fiat_p224_uint1)(x66 & UINT8_C(0xff));
- out1[0] = x6;
- out1[1] = x8;
- out1[2] = x10;
- out1[3] = x12;
- out1[4] = x14;
- out1[5] = x16;
- out1[6] = x18;
- out1[7] = x20;
- out1[8] = x23;
- out1[9] = x25;
- out1[10] = x27;
- out1[11] = x29;
- out1[12] = x31;
- out1[13] = x33;
- out1[14] = x35;
- out1[15] = x37;
- out1[16] = x40;
- out1[17] = x42;
- out1[18] = x44;
- out1[19] = x46;
- out1[20] = x48;
- out1[21] = x50;
- out1[22] = x52;
- out1[23] = x54;
- out1[24] = x57;
- out1[25] = x59;
- out1[26] = x61;
- out1[27] = x63;
- out1[28] = x65;
- out1[29] = x67;
- out1[30] = x69;
- out1[31] = x68;
-}
-
-/*
- * 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 ~> 0x0], [0x0 ~> 0x0], [0x0 ~> 0x0], [0x0 ~> 0x0]]
- * Output Bounds:
- * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffff]]
- */
-static void fiat_p224_from_bytes(uint64_t out1[4], const uint8_t arg1[32]) {
- fiat_p224_uint1 x1 = (fiat_p224_uint1)((uint64_t)(fiat_p224_uint1)(arg1[31]) << 56);
- fiat_p224_uint1 x2 = (fiat_p224_uint1)((uint64_t)(fiat_p224_uint1)(arg1[30]) << 48);
- fiat_p224_uint1 x3 = (fiat_p224_uint1)((uint64_t)(fiat_p224_uint1)(arg1[29]) << 40);
- fiat_p224_uint1 x4 = (fiat_p224_uint1)((uint64_t)(fiat_p224_uint1)(arg1[28]) << 32);
- uint64_t x5 = ((uint64_t)(arg1[27]) << 24);
- uint64_t x6 = ((uint64_t)(arg1[26]) << 16);
- uint64_t x7 = ((uint64_t)(arg1[25]) << 8);
- uint8_t x8 = (arg1[24]);
- uint64_t x9 = ((uint64_t)(arg1[23]) << 56);
- uint64_t x10 = ((uint64_t)(arg1[22]) << 48);
- uint64_t x11 = ((uint64_t)(arg1[21]) << 40);
- uint64_t x12 = ((uint64_t)(arg1[20]) << 32);
- uint64_t x13 = ((uint64_t)(arg1[19]) << 24);
- uint64_t x14 = ((uint64_t)(arg1[18]) << 16);
- uint64_t x15 = ((uint64_t)(arg1[17]) << 8);
- uint8_t x16 = (arg1[16]);
- uint64_t x17 = ((uint64_t)(arg1[15]) << 56);
- uint64_t x18 = ((uint64_t)(arg1[14]) << 48);
- uint64_t x19 = ((uint64_t)(arg1[13]) << 40);
- uint64_t x20 = ((uint64_t)(arg1[12]) << 32);
- uint64_t x21 = ((uint64_t)(arg1[11]) << 24);
- uint64_t x22 = ((uint64_t)(arg1[10]) << 16);
- uint64_t x23 = ((uint64_t)(arg1[9]) << 8);
- uint8_t x24 = (arg1[8]);
- uint64_t x25 = ((uint64_t)(arg1[7]) << 56);
- uint64_t x26 = ((uint64_t)(arg1[6]) << 48);
- uint64_t x27 = ((uint64_t)(arg1[5]) << 40);
- uint64_t x28 = ((uint64_t)(arg1[4]) << 32);
- uint64_t x29 = ((uint64_t)(arg1[3]) << 24);
- uint64_t x30 = ((uint64_t)(arg1[2]) << 16);
- uint64_t x31 = ((uint64_t)(arg1[1]) << 8);
- uint8_t x32 = (arg1[0]);
- uint64_t x33 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + (x26 + x25)))))));
- fiat_p224_uint1 x34 = (fiat_p224_uint1)((fiat_p224_uint128)x33 >> 64);
- uint64_t x35 = (x33 & UINT64_C(0xffffffffffffffff));
- uint64_t x36 = (x8 + (x7 + (x6 + (x5 + (uint64_t)(fiat_p224_uint1)(x4 + (fiat_p224_uint1)(x3 + (fiat_p224_uint1)(x2 + x1)))))));
- uint64_t x37 = (x16 + (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9)))))));
- uint64_t x38 = (x24 + (x23 + (x22 + (x21 + (x20 + (x19 + (x18 + x17)))))));
- uint64_t x39 = (x34 + x38);
- fiat_p224_uint1 x40 = (fiat_p224_uint1)((fiat_p224_uint128)x39 >> 64);
- uint64_t x41 = (x39 & UINT64_C(0xffffffffffffffff));
- uint64_t x42 = (x40 + x37);
- fiat_p224_uint1 x43 = (fiat_p224_uint1)((fiat_p224_uint128)x42 >> 64);
- uint64_t x44 = (x42 & UINT64_C(0xffffffffffffffff));
- uint64_t x45 = (x43 + x36);
- out1[0] = x35;
- out1[1] = x41;
- out1[2] = x44;
- out1[3] = x45;
-}
+In fiat_p224_from_montgomery:
+Stringification failed on the syntax tree:
+(λ x1,
+ expr_let x2 := Z.mul_split(2^64, x1[0], 1) (* : uint64_t, uint1_t *) in
+ expr_let x3 := Z.add_with_get_carry(2^64, 0, 0, (x2₁ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x4 := Z.add_with_get_carry(2^64, x3₂, 0, (x2₂ * 1)) (* : uint1_t, uint1_t *) in
+ expr_let x5 := Z.add_with_get_carry(2^64, x4₂, 0, (1 * 0)) (* : uint1_t, uint1_t *) in
+ expr_let x6 := Z.add_with_get_carry(2^64, x5₂, 0, (1 * 0)) (* : uint1_t, uint1_t *) in
+ expr_let x7 := Z.add_with_get_carry(2^64, 0, 0, x3₁) (* : uint64_t, uint1_t *) in
+ expr_let x8 := Z.add_with_get_carry(2^64, x7₂, 0, x4₁) (* : uint1_t, uint1_t *) in
+ expr_let x9 := Z.add_with_get_carry(2^64, x8₂, 0, x5₁) (* : uint1_t, uint1_t *) in
+ expr_let x10 := Z.add_with_get_carry(2^64, x9₂, 0, x6₁) (* : uint1_t, uint1_t *) in
+ expr_let x11 := Z.add_with_get_carry(2^64, 0, 0, x7₁) (* : uint64_t, uint1_t *) in
+ expr_let x12 := Z.add_with_get_carry(2^64, x11₂, 0, x8₁) (* : uint1_t, uint1_t *) in
+ expr_let x13 := Z.add_with_get_carry(2^64, x12₂, 0, x9₁) (* : uint1_t, uint1_t *) in
+ expr_let x14 := Z.add_with_get_carry(2^64, x13₂, 0, x10₁) (* : uint1_t, uint1_t *) in
+ expr_let x15 := Z.add_with_get_carry(2^64, 0, 0, x11₁) (* : uint64_t, uint1_t *) in
+ expr_let x16 := Z.add_with_get_carry(2^64, x15₂, 0, x12₁) (* : uint1_t, uint1_t *) in
+ expr_let x17 := Z.add_with_get_carry(2^64, x16₂, 0, x13₁) (* : uint1_t, uint1_t *) in
+ expr_let x18 := Z.add_with_get_carry(2^64, x17₂, 0, x14₁) (* : uint1_t, uint1_t *) in
+ expr_let x19 := Z.add_with_get_carry(2^64, 0, 0, x15₁) (* : uint64_t, uint1_t *) in
+ expr_let x20 := Z.add_with_get_carry(2^64, x19₂, 0, x16₁) (* : uint1_t, uint1_t *) in
+ expr_let x21 := Z.add_with_get_carry(2^64, x20₂, 0, x17₁) (* : uint1_t, uint1_t *) in
+ expr_let x22 := Z.add_with_get_carry(2^64, x21₂, 0, x18₁) (* : uint1_t, uint1_t *) in
+ expr_let x23 := Z.add_with_get_carry(2^64, 0, 0, x19₁) (* : uint64_t, uint1_t *) in
+ expr_let x24 := Z.add_with_get_carry(2^64, x23₂, 0, x20₁) (* : uint1_t, uint1_t *) in
+ expr_let x25 := Z.add_with_get_carry(2^64, x24₂, 0, x21₁) (* : uint1_t, uint1_t *) in
+ expr_let x26 := Z.add_with_get_carry(2^64, x25₂, 0, x22₁) (* : uint1_t, uint1_t *) in
+ expr_let x27 := Z.add_with_get_carry(2^64, 0, 0, x23₁) (* : uint64_t, uint1_t *) in
+ expr_let x28 := Z.add_with_get_carry(2^64, x27₂, 0, x24₁) (* : uint1_t, uint1_t *) in
+ expr_let x29 := Z.add_with_get_carry(2^64, x28₂, 0, x25₁) (* : uint1_t, uint1_t *) in
+ expr_let x30 := Z.add_with_get_carry(2^64, x29₂, 0, x26₁) (* : uint1_t, uint1_t *) in
+ expr_let x31 := Z.add_with_get_carry(2^64, 0, 0, x27₁) (* : uint64_t, uint1_t *) in
+ expr_let x32 := Z.add_with_get_carry(2^64, x31₂, 0, x28₁) (* : uint1_t, uint1_t *) in
+ expr_let x33 := Z.add_with_get_carry(2^64, x32₂, 0, x29₁) (* : uint1_t, uint1_t *) in
+ expr_let x34 := Z.add_with_get_carry(2^64, x33₂, 0, x30₁) (* : uint1_t, uint1_t *) in
+ expr_let x35 := Z.add_with_get_carry(2^64, 0, 0, x31₁) (* : uint64_t, uint1_t *) in
+ expr_let x36 := Z.add_with_get_carry(2^64, x35₂, 0, x32₁) (* : uint1_t, uint1_t *) in
+ expr_let x37 := Z.add_with_get_carry(2^64, x36₂, 0, x33₁) (* : uint1_t, uint1_t *) in
+ expr_let x38 := Z.add_with_get_carry(2^64, x37₂, 0, x34₁) (* : uint1_t, uint1_t *) in
+ expr_let x39 := Z.add_with_get_carry(2^64, 0, 0, x35₁) (* : uint64_t, uint1_t *) in
+ expr_let x40 := Z.add_with_get_carry(2^64, x39₂, 0, x36₁) (* : uint1_t, uint1_t *) in
+ expr_let x41 := Z.add_with_get_carry(2^64, x40₂, 0, x37₁) (* : uint1_t, uint1_t *) in
+ expr_let x42 := Z.add_with_get_carry(2^64, x41₂, 0, x38₁) (* : uint1_t, uint1_t *) in
+ expr_let x43 := Z.add_with_get_carry(2^64, 0, 0, x39₁) (* : uint64_t, uint1_t *) in
+ expr_let x44 := Z.add_with_get_carry(2^64, x43₂, 0, x40₁) (* : uint1_t, uint1_t *) in
+ expr_let x45 := Z.add_with_get_carry(2^64, x44₂, 0, x41₁) (* : uint1_t, uint1_t *) in
+ expr_let x46 := Z.add_with_get_carry(2^64, x45₂, 0, x42₁) (* : uint1_t, uint1_t *) in
+ expr_let x47 := Z.add_with_get_carry(2^64, 0, 0, x43₁) (* : uint64_t, uint1_t *) in
+ expr_let x48 := Z.add_with_get_carry(2^64, x47₂, 0, x44₁) (* : uint1_t, uint1_t *) in
+ expr_let x49 := Z.add_with_get_carry(2^64, x48₂, 0, x45₁) (* : uint1_t, uint1_t *) in
+ expr_let x50 := Z.add_with_get_carry(2^64, x49₂, 0, x46₁) (* : uint1_t, uint1_t *) in
+ expr_let x51 := Z.add_with_get_carry(2^64, 0, 0, x47₁) (* : uint64_t, uint1_t *) in
+ expr_let x52 := Z.add_with_get_carry(2^64, x51₂, 0, x48₁) (* : uint1_t, uint1_t *) in
+ expr_let x53 := Z.add_with_get_carry(2^64, x52₂, 0, x49₁) (* : uint1_t, uint1_t *) in
+ expr_let x54 := Z.add_with_get_carry(2^64, x53₂, 0, x50₁) (* : uint1_t, uint1_t *) in
+ expr_let x55 := Z.add_with_get_carry(2^64, 0, 0, x51₁) (* : uint64_t, uint1_t *) in
+ expr_let x56 := Z.add_with_get_carry(2^64, x55₂, 0, x52₁) (* : uint1_t, uint1_t *) in
+ expr_let x57 := Z.add_with_get_carry(2^64, x56₂, 0, x53₁) (* : uint1_t, uint1_t *) in
+ expr_let x58 := Z.add_with_get_carry(2^64, x57₂, 0, x54₁) (* : uint1_t, uint1_t *) in
+ expr_let x59 := Z.add_with_get_carry(2^64, 0, 0, x55₁) (* : uint64_t, uint1_t *) in
+ expr_let x60 := Z.add_with_get_carry(2^64, x59₂, (1 * 0), x56₁) (* : uint1_t, uint1_t *) in
+ expr_let x61 := Z.add_with_get_carry(2^64, x60₂, (1 * 0), x57₁) (* : uint1_t, uint1_t *) in
+ expr_let x62 := Z.add_with_get_carry(2^64, x61₂, (1 * 0), x58₁) (* : uint1_t, uint1_t *) in
+ expr_let x63 := Z.add_with_get_carry(2^64, 0, x59₁, 0) (* : uint64_t, uint1_t *) in
+ expr_let x64 := Z.add_with_get_carry(2^64, x63₂, x60₁, 0) (* : uint1_t, uint1_t *) in
+ expr_let x65 := Z.add_with_get_carry(2^64, x64₂, x61₁, 0) (* : uint1_t, uint1_t *) in
+ expr_let x66 := Z.add_with_get_carry(2^64, x65₂, x62₁, 0) (* : uint1_t, uint1_t *) in
+ expr_let x67 := Z.add_with_get_carry(2^64, x66₂, (Z.add_with_get_carry(2^64, x62₂, 0, (Z.add_with_get_carry(2^64, x58₂, 0, (Z.add_with_get_carry(2^64, x54₂, 0, (Z.add_with_get_carry(2^64, x50₂, 0, (Z.add_with_get_carry(2^64, x46₂, 0, (Z.add_with_get_carry(2^64, x42₂, 0, (Z.add_with_get_carry(2^64, x38₂, 0, (Z.add_with_get_carry(2^64, x34₂, 0, (Z.add_with_get_carry(2^64, x30₂, 0, (Z.add_with_get_carry(2^64, x26₂, 0, (Z.add_with_get_carry(2^64, x22₂, 0, (Z.add_with_get_carry(2^64, x18₂, 0, (Z.add_with_get_carry(2^64, x14₂, 0, (Z.add_with_get_carry(2^64, x10₂, 0, (Z.add_with_get_carry(2^64, x6₂, 0, (1 * 0)))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁, 0) (* : uint1_t, uint1_t *) in
+ expr_let x68 := (Z.mul_split(2^64, x63₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x69 := Z.mul_split(2^64, x68, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x70 := Z.mul_split(2^64, x68, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x71 := Z.mul_split(2^64, x68, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x72 := Z.mul_split(2^64, x68, 1) (* : uint64_t, uint1_t *) in
+ expr_let x73 := Z.add_with_get_carry(2^64, 0, 0, (x72₁ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x74 := Z.add_with_get_carry(2^64, x73₂, 0, (x72₂ * 1)) (* : uint1_t, uint1_t *) in
+ expr_let x75 := Z.add_with_get_carry(2^64, x74₂, 0, (x71₂ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x76 := Z.add_with_get_carry(2^64, x75₂, 0, (x70₂ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x77 := Z.add_with_get_carry(2^64, 0, 0, x73₁) (* : uint64_t, uint1_t *) in
+ expr_let x78 := Z.add_with_get_carry(2^64, x77₂, 0, x74₁) (* : uint1_t, uint1_t *) in
+ expr_let x79 := Z.add_with_get_carry(2^64, x78₂, 0, x75₁) (* : uint64_t, uint1_t *) in
+ expr_let x80 := Z.add_with_get_carry(2^64, x79₂, 0, x76₁) (* : uint64_t, uint1_t *) in
+ expr_let x81 := Z.add_with_get_carry(2^64, 0, 0, x77₁) (* : uint64_t, uint1_t *) in
+ expr_let x82 := Z.add_with_get_carry(2^64, x81₂, 0, x78₁) (* : uint1_t, uint1_t *) in
+ expr_let x83 := Z.add_with_get_carry(2^64, x82₂, 0, x79₁) (* : uint64_t, uint1_t *) in
+ expr_let x84 := Z.add_with_get_carry(2^64, x83₂, 0, x80₁) (* : uint64_t, uint1_t *) in
+ expr_let x85 := Z.add_with_get_carry(2^64, 0, 0, x81₁) (* : uint64_t, uint1_t *) in
+ expr_let x86 := Z.add_with_get_carry(2^64, x85₂, 0, x82₁) (* : uint1_t, uint1_t *) in
+ expr_let x87 := Z.add_with_get_carry(2^64, x86₂, 0, x83₁) (* : uint64_t, uint1_t *) in
+ expr_let x88 := Z.add_with_get_carry(2^64, x87₂, 0, x84₁) (* : uint64_t, uint1_t *) in
+ expr_let x89 := Z.add_with_get_carry(2^64, 0, 0, x85₁) (* : uint64_t, uint1_t *) in
+ expr_let x90 := Z.add_with_get_carry(2^64, x89₂, 0, x86₁) (* : uint1_t, uint1_t *) in
+ expr_let x91 := Z.add_with_get_carry(2^64, x90₂, 0, x87₁) (* : uint64_t, uint1_t *) in
+ expr_let x92 := Z.add_with_get_carry(2^64, x91₂, 0, x88₁) (* : uint64_t, uint1_t *) in
+ expr_let x93 := Z.add_with_get_carry(2^64, 0, 0, x89₁) (* : uint64_t, uint1_t *) in
+ expr_let x94 := Z.add_with_get_carry(2^64, x93₂, 0, x90₁) (* : uint1_t, uint1_t *) in
+ expr_let x95 := Z.add_with_get_carry(2^64, x94₂, 0, x91₁) (* : uint64_t, uint1_t *) in
+ expr_let x96 := Z.add_with_get_carry(2^64, x95₂, 0, x92₁) (* : uint64_t, uint1_t *) in
+ expr_let x97 := Z.add_with_get_carry(2^64, 0, 0, x93₁) (* : uint64_t, uint1_t *) in
+ expr_let x98 := Z.add_with_get_carry(2^64, x97₂, 0, x94₁) (* : uint1_t, uint1_t *) in
+ expr_let x99 := Z.add_with_get_carry(2^64, x98₂, 0, x95₁) (* : uint64_t, uint1_t *) in
+ expr_let x100 := Z.add_with_get_carry(2^64, x99₂, 0, x96₁) (* : uint64_t, uint1_t *) in
+ expr_let x101 := Z.add_with_get_carry(2^64, 0, 0, x97₁) (* : uint64_t, uint1_t *) in
+ expr_let x102 := Z.add_with_get_carry(2^64, x101₂, 0, x98₁) (* : uint1_t, uint1_t *) in
+ expr_let x103 := Z.add_with_get_carry(2^64, x102₂, 0, x99₁) (* : uint64_t, uint1_t *) in
+ expr_let x104 := Z.add_with_get_carry(2^64, x103₂, 0, x100₁) (* : uint64_t, uint1_t *) in
+ expr_let x105 := Z.add_with_get_carry(2^64, 0, 0, x101₁) (* : uint64_t, uint1_t *) in
+ expr_let x106 := Z.add_with_get_carry(2^64, x105₂, 0, x102₁) (* : uint1_t, uint1_t *) in
+ expr_let x107 := Z.add_with_get_carry(2^64, x106₂, 0, x103₁) (* : uint64_t, uint1_t *) in
+ expr_let x108 := Z.add_with_get_carry(2^64, x107₂, 0, x104₁) (* : uint64_t, uint1_t *) in
+ expr_let x109 := Z.add_with_get_carry(2^64, 0, 0, x105₁) (* : uint64_t, uint1_t *) in
+ expr_let x110 := Z.add_with_get_carry(2^64, x109₂, 0, x106₁) (* : uint1_t, uint1_t *) in
+ expr_let x111 := Z.add_with_get_carry(2^64, x110₂, 0, x107₁) (* : uint64_t, uint1_t *) in
+ expr_let x112 := Z.add_with_get_carry(2^64, x111₂, 0, x108₁) (* : uint64_t, uint1_t *) in
+ expr_let x113 := Z.add_with_get_carry(2^64, 0, 0, x109₁) (* : uint64_t, uint1_t *) in
+ expr_let x114 := Z.add_with_get_carry(2^64, x113₂, 0, x110₁) (* : uint1_t, uint1_t *) in
+ expr_let x115 := Z.add_with_get_carry(2^64, x114₂, 0, x111₁) (* : uint64_t, uint1_t *) in
+ expr_let x116 := Z.add_with_get_carry(2^64, x115₂, 0, x112₁) (* : uint64_t, uint1_t *) in
+ expr_let x117 := Z.add_with_get_carry(2^64, 0, 0, x113₁) (* : uint64_t, uint1_t *) in
+ expr_let x118 := Z.add_with_get_carry(2^64, x117₂, 0, x114₁) (* : uint1_t, uint1_t *) in
+ expr_let x119 := Z.add_with_get_carry(2^64, x118₂, 0, x115₁) (* : uint64_t, uint1_t *) in
+ expr_let x120 := Z.add_with_get_carry(2^64, x119₂, 0, x116₁) (* : uint64_t, uint1_t *) in
+ expr_let x121 := Z.add_with_get_carry(2^64, 0, 0, x117₁) (* : uint64_t, uint1_t *) in
+ expr_let x122 := Z.add_with_get_carry(2^64, x121₂, 0, x118₁) (* : uint1_t, uint1_t *) in
+ expr_let x123 := Z.add_with_get_carry(2^64, x122₂, 0, x119₁) (* : uint64_t, uint1_t *) in
+ expr_let x124 := Z.add_with_get_carry(2^64, x123₂, 0, x120₁) (* : uint64_t, uint1_t *) in
+ expr_let x125 := Z.add_with_get_carry(2^64, 0, 0, x121₁) (* : uint64_t, uint1_t *) in
+ expr_let x126 := Z.add_with_get_carry(2^64, x125₂, 0, x122₁) (* : uint1_t, uint1_t *) in
+ expr_let x127 := Z.add_with_get_carry(2^64, x126₂, 0, x123₁) (* : uint64_t, uint1_t *) in
+ expr_let x128 := Z.add_with_get_carry(2^64, x127₂, 0, x124₁) (* : uint64_t, uint1_t *) in
+ expr_let x129 := Z.add_with_get_carry(2^64, 0, 0, x125₁) (* : uint64_t, uint1_t *) in
+ expr_let x130 := Z.add_with_get_carry(2^64, x129₂, (x71₁ * 1), x126₁) (* : uint64_t, uint1_t *) in
+ expr_let x131 := Z.add_with_get_carry(2^64, x130₂, (x70₁ * 1), x127₁) (* : uint64_t, uint1_t *) in
+ expr_let x132 := Z.add_with_get_carry(2^64, x131₂, (x69₁ * 1), x128₁) (* : uint64_t, uint1_t *) in
+ expr_let x133 := Z.add_with_get_carry(2^64, (Z.add_with_get_carry(2^64, 0, x129₁, x63₁))₂, x130₁, x64₁) (* : uint64_t, uint1_t *) in
+ expr_let x134 := Z.add_with_get_carry(2^64, x133₂, x131₁, x65₁) (* : uint64_t, uint1_t *) in
+ expr_let x135 := Z.add_with_get_carry(2^64, x134₂, x132₁, x66₁) (* : uint64_t, uint1_t *) in
+ expr_let x136 := Z.add_with_get_carry(2^64, x135₂, (Z.add_with_get_carry(2^64, x132₂, 0, (Z.add_with_get_carry(2^64, x128₂, 0, (Z.add_with_get_carry(2^64, x124₂, 0, (Z.add_with_get_carry(2^64, x120₂, 0, (Z.add_with_get_carry(2^64, x116₂, 0, (Z.add_with_get_carry(2^64, x112₂, 0, (Z.add_with_get_carry(2^64, x108₂, 0, (Z.add_with_get_carry(2^64, x104₂, 0, (Z.add_with_get_carry(2^64, x100₂, 0, (Z.add_with_get_carry(2^64, x96₂, 0, (Z.add_with_get_carry(2^64, x92₂, 0, (Z.add_with_get_carry(2^64, x88₂, 0, (Z.add_with_get_carry(2^64, x84₂, 0, (Z.add_with_get_carry(2^64, x80₂, 0, (Z.add_with_get_carry(2^64, x76₂, 0, (x69₂ * 1)))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁, x67₁) (* : uint64_t, uint1_t *) in
+ expr_let x137 := Z.mul_split(2^64, x1[1], 1) (* : uint64_t, uint1_t *) in
+ expr_let x138 := Z.add_with_get_carry(2^64, 0, 0, (x137₁ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x139 := Z.add_with_get_carry(2^64, x138₂, 0, (x137₂ * 1)) (* : uint1_t, uint1_t *) in
+ expr_let x140 := Z.add_with_get_carry(2^64, x139₂, 0, (1 * 0)) (* : uint1_t, uint1_t *) in
+ expr_let x141 := Z.add_with_get_carry(2^64, x140₂, 0, (1 * 0)) (* : uint1_t, uint1_t *) in
+ expr_let x142 := Z.add_with_get_carry(2^64, 0, 0, x138₁) (* : uint64_t, uint1_t *) in
+ expr_let x143 := Z.add_with_get_carry(2^64, x142₂, 0, x139₁) (* : uint1_t, uint1_t *) in
+ expr_let x144 := Z.add_with_get_carry(2^64, x143₂, 0, x140₁) (* : uint1_t, uint1_t *) in
+ expr_let x145 := Z.add_with_get_carry(2^64, x144₂, 0, x141₁) (* : uint1_t, uint1_t *) in
+ expr_let x146 := Z.add_with_get_carry(2^64, 0, 0, x142₁) (* : uint64_t, uint1_t *) in
+ expr_let x147 := Z.add_with_get_carry(2^64, x146₂, 0, x143₁) (* : uint1_t, uint1_t *) in
+ expr_let x148 := Z.add_with_get_carry(2^64, x147₂, 0, x144₁) (* : uint1_t, uint1_t *) in
+ expr_let x149 := Z.add_with_get_carry(2^64, x148₂, 0, x145₁) (* : uint1_t, uint1_t *) in
+ expr_let x150 := Z.add_with_get_carry(2^64, 0, 0, x146₁) (* : uint64_t, uint1_t *) in
+ expr_let x151 := Z.add_with_get_carry(2^64, x150₂, 0, x147₁) (* : uint1_t, uint1_t *) in
+ expr_let x152 := Z.add_with_get_carry(2^64, x151₂, 0, x148₁) (* : uint1_t, uint1_t *) in
+ expr_let x153 := Z.add_with_get_carry(2^64, x152₂, 0, x149₁) (* : uint1_t, uint1_t *) in
+ expr_let x154 := Z.add_with_get_carry(2^64, 0, 0, x150₁) (* : uint64_t, uint1_t *) in
+ expr_let x155 := Z.add_with_get_carry(2^64, x154₂, 0, x151₁) (* : uint1_t, uint1_t *) in
+ expr_let x156 := Z.add_with_get_carry(2^64, x155₂, 0, x152₁) (* : uint1_t, uint1_t *) in
+ expr_let x157 := Z.add_with_get_carry(2^64, x156₂, 0, x153₁) (* : uint1_t, uint1_t *) in
+ expr_let x158 := Z.add_with_get_carry(2^64, 0, 0, x154₁) (* : uint64_t, uint1_t *) in
+ expr_let x159 := Z.add_with_get_carry(2^64, x158₂, 0, x155₁) (* : uint1_t, uint1_t *) in
+ expr_let x160 := Z.add_with_get_carry(2^64, x159₂, 0, x156₁) (* : uint1_t, uint1_t *) in
+ expr_let x161 := Z.add_with_get_carry(2^64, x160₂, 0, x157₁) (* : uint1_t, uint1_t *) in
+ expr_let x162 := Z.add_with_get_carry(2^64, 0, 0, x158₁) (* : uint64_t, uint1_t *) in
+ expr_let x163 := Z.add_with_get_carry(2^64, x162₂, 0, x159₁) (* : uint1_t, uint1_t *) in
+ expr_let x164 := Z.add_with_get_carry(2^64, x163₂, 0, x160₁) (* : uint1_t, uint1_t *) in
+ expr_let x165 := Z.add_with_get_carry(2^64, x164₂, 0, x161₁) (* : uint1_t, uint1_t *) in
+ expr_let x166 := Z.add_with_get_carry(2^64, 0, 0, x162₁) (* : uint64_t, uint1_t *) in
+ expr_let x167 := Z.add_with_get_carry(2^64, x166₂, 0, x163₁) (* : uint1_t, uint1_t *) in
+ expr_let x168 := Z.add_with_get_carry(2^64, x167₂, 0, x164₁) (* : uint1_t, uint1_t *) in
+ expr_let x169 := Z.add_with_get_carry(2^64, x168₂, 0, x165₁) (* : uint1_t, uint1_t *) in
+ expr_let x170 := Z.add_with_get_carry(2^64, 0, 0, x166₁) (* : uint64_t, uint1_t *) in
+ expr_let x171 := Z.add_with_get_carry(2^64, x170₂, 0, x167₁) (* : uint1_t, uint1_t *) in
+ expr_let x172 := Z.add_with_get_carry(2^64, x171₂, 0, x168₁) (* : uint1_t, uint1_t *) in
+ expr_let x173 := Z.add_with_get_carry(2^64, x172₂, 0, x169₁) (* : uint1_t, uint1_t *) in
+ expr_let x174 := Z.add_with_get_carry(2^64, 0, 0, x170₁) (* : uint64_t, uint1_t *) in
+ expr_let x175 := Z.add_with_get_carry(2^64, x174₂, 0, x171₁) (* : uint1_t, uint1_t *) in
+ expr_let x176 := Z.add_with_get_carry(2^64, x175₂, 0, x172₁) (* : uint1_t, uint1_t *) in
+ expr_let x177 := Z.add_with_get_carry(2^64, x176₂, 0, x173₁) (* : uint1_t, uint1_t *) in
+ expr_let x178 := Z.add_with_get_carry(2^64, 0, 0, x174₁) (* : uint64_t, uint1_t *) in
+ expr_let x179 := Z.add_with_get_carry(2^64, x178₂, 0, x175₁) (* : uint1_t, uint1_t *) in
+ expr_let x180 := Z.add_with_get_carry(2^64, x179₂, 0, x176₁) (* : uint1_t, uint1_t *) in
+ expr_let x181 := Z.add_with_get_carry(2^64, x180₂, 0, x177₁) (* : uint1_t, uint1_t *) in
+ expr_let x182 := Z.add_with_get_carry(2^64, 0, 0, x178₁) (* : uint64_t, uint1_t *) in
+ expr_let x183 := Z.add_with_get_carry(2^64, x182₂, 0, x179₁) (* : uint1_t, uint1_t *) in
+ expr_let x184 := Z.add_with_get_carry(2^64, x183₂, 0, x180₁) (* : uint1_t, uint1_t *) in
+ expr_let x185 := Z.add_with_get_carry(2^64, x184₂, 0, x181₁) (* : uint1_t, uint1_t *) in
+ expr_let x186 := Z.add_with_get_carry(2^64, 0, 0, x182₁) (* : uint64_t, uint1_t *) in
+ expr_let x187 := Z.add_with_get_carry(2^64, x186₂, 0, x183₁) (* : uint1_t, uint1_t *) in
+ expr_let x188 := Z.add_with_get_carry(2^64, x187₂, 0, x184₁) (* : uint1_t, uint1_t *) in
+ expr_let x189 := Z.add_with_get_carry(2^64, x188₂, 0, x185₁) (* : uint1_t, uint1_t *) in
+ expr_let x190 := Z.add_with_get_carry(2^64, 0, 0, x186₁) (* : uint64_t, uint1_t *) in
+ expr_let x191 := Z.add_with_get_carry(2^64, x190₂, 0, x187₁) (* : uint1_t, uint1_t *) in
+ expr_let x192 := Z.add_with_get_carry(2^64, x191₂, 0, x188₁) (* : uint1_t, uint1_t *) in
+ expr_let x193 := Z.add_with_get_carry(2^64, x192₂, 0, x189₁) (* : uint1_t, uint1_t *) in
+ expr_let x194 := Z.add_with_get_carry(2^64, 0, 0, x190₁) (* : uint64_t, uint1_t *) in
+ expr_let x195 := Z.add_with_get_carry(2^64, x194₂, (1 * 0), x191₁) (* : uint1_t, uint1_t *) in
+ expr_let x196 := Z.add_with_get_carry(2^64, x195₂, (1 * 0), x192₁) (* : uint1_t, uint1_t *) in
+ expr_let x197 := Z.add_with_get_carry(2^64, x196₂, (1 * 0), x193₁) (* : uint1_t, uint1_t *) in
+ expr_let x198 := Z.add_with_get_carry(2^64, 0, x194₁, x133₁) (* : uint64_t, uint1_t *) in
+ expr_let x199 := Z.add_with_get_carry(2^64, x198₂, x195₁, x134₁) (* : uint64_t, uint1_t *) in
+ expr_let x200 := Z.add_with_get_carry(2^64, x199₂, x196₁, x135₁) (* : uint64_t, uint1_t *) in
+ expr_let x201 := Z.add_with_get_carry(2^64, x200₂, x197₁, x136₁) (* : uint64_t, uint1_t *) in
+ expr_let x202 := Z.add_with_get_carry(2^64, x201₂, (Z.add_with_get_carry(2^64, x197₂, 0, (Z.add_with_get_carry(2^64, x193₂, 0, (Z.add_with_get_carry(2^64, x189₂, 0, (Z.add_with_get_carry(2^64, x185₂, 0, (Z.add_with_get_carry(2^64, x181₂, 0, (Z.add_with_get_carry(2^64, x177₂, 0, (Z.add_with_get_carry(2^64, x173₂, 0, (Z.add_with_get_carry(2^64, x169₂, 0, (Z.add_with_get_carry(2^64, x165₂, 0, (Z.add_with_get_carry(2^64, x161₂, 0, (Z.add_with_get_carry(2^64, x157₂, 0, (Z.add_with_get_carry(2^64, x153₂, 0, (Z.add_with_get_carry(2^64, x149₂, 0, (Z.add_with_get_carry(2^64, x145₂, 0, (Z.add_with_get_carry(2^64, x141₂, 0, (1 * 0)))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁, (Z.add_with_get_carry(2^64, x136₂, 0, x67₂))₁) (* : uint1_t, uint1_t *) in
+ expr_let x203 := (Z.mul_split(2^64, x198₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x204 := Z.mul_split(2^64, x203, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x205 := Z.mul_split(2^64, x203, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x206 := Z.mul_split(2^64, x203, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x207 := Z.mul_split(2^64, x203, 1) (* : uint64_t, uint1_t *) in
+ expr_let x208 := Z.add_with_get_carry(2^64, 0, 0, (x207₁ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x209 := Z.add_with_get_carry(2^64, x208₂, 0, (x207₂ * 1)) (* : uint1_t, uint1_t *) in
+ expr_let x210 := Z.add_with_get_carry(2^64, x209₂, 0, (x206₂ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x211 := Z.add_with_get_carry(2^64, x210₂, 0, (x205₂ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x212 := Z.add_with_get_carry(2^64, 0, 0, x208₁) (* : uint64_t, uint1_t *) in
+ expr_let x213 := Z.add_with_get_carry(2^64, x212₂, 0, x209₁) (* : uint1_t, uint1_t *) in
+ expr_let x214 := Z.add_with_get_carry(2^64, x213₂, 0, x210₁) (* : uint64_t, uint1_t *) in
+ expr_let x215 := Z.add_with_get_carry(2^64, x214₂, 0, x211₁) (* : uint64_t, uint1_t *) in
+ expr_let x216 := Z.add_with_get_carry(2^64, 0, 0, x212₁) (* : uint64_t, uint1_t *) in
+ expr_let x217 := Z.add_with_get_carry(2^64, x216₂, 0, x213₁) (* : uint1_t, uint1_t *) in
+ expr_let x218 := Z.add_with_get_carry(2^64, x217₂, 0, x214₁) (* : uint64_t, uint1_t *) in
+ expr_let x219 := Z.add_with_get_carry(2^64, x218₂, 0, x215₁) (* : uint64_t, uint1_t *) in
+ expr_let x220 := Z.add_with_get_carry(2^64, 0, 0, x216₁) (* : uint64_t, uint1_t *) in
+ expr_let x221 := Z.add_with_get_carry(2^64, x220₂, 0, x217₁) (* : uint1_t, uint1_t *) in
+ expr_let x222 := Z.add_with_get_carry(2^64, x221₂, 0, x218₁) (* : uint64_t, uint1_t *) in
+ expr_let x223 := Z.add_with_get_carry(2^64, x222₂, 0, x219₁) (* : uint64_t, uint1_t *) in
+ expr_let x224 := Z.add_with_get_carry(2^64, 0, 0, x220₁) (* : uint64_t, uint1_t *) in
+ expr_let x225 := Z.add_with_get_carry(2^64, x224₂, 0, x221₁) (* : uint1_t, uint1_t *) in
+ expr_let x226 := Z.add_with_get_carry(2^64, x225₂, 0, x222₁) (* : uint64_t, uint1_t *) in
+ expr_let x227 := Z.add_with_get_carry(2^64, x226₂, 0, x223₁) (* : uint64_t, uint1_t *) in
+ expr_let x228 := Z.add_with_get_carry(2^64, 0, 0, x224₁) (* : uint64_t, uint1_t *) in
+ expr_let x229 := Z.add_with_get_carry(2^64, x228₂, 0, x225₁) (* : uint1_t, uint1_t *) in
+ expr_let x230 := Z.add_with_get_carry(2^64, x229₂, 0, x226₁) (* : uint64_t, uint1_t *) in
+ expr_let x231 := Z.add_with_get_carry(2^64, x230₂, 0, x227₁) (* : uint64_t, uint1_t *) in
+ expr_let x232 := Z.add_with_get_carry(2^64, 0, 0, x228₁) (* : uint64_t, uint1_t *) in
+ expr_let x233 := Z.add_with_get_carry(2^64, x232₂, 0, x229₁) (* : uint1_t, uint1_t *) in
+ expr_let x234 := Z.add_with_get_carry(2^64, x233₂, 0, x230₁) (* : uint64_t, uint1_t *) in
+ expr_let x235 := Z.add_with_get_carry(2^64, x234₂, 0, x231₁) (* : uint64_t, uint1_t *) in
+ expr_let x236 := Z.add_with_get_carry(2^64, 0, 0, x232₁) (* : uint64_t, uint1_t *) in
+ expr_let x237 := Z.add_with_get_carry(2^64, x236₂, 0, x233₁) (* : uint1_t, uint1_t *) in
+ expr_let x238 := Z.add_with_get_carry(2^64, x237₂, 0, x234₁) (* : uint64_t, uint1_t *) in
+ expr_let x239 := Z.add_with_get_carry(2^64, x238₂, 0, x235₁) (* : uint64_t, uint1_t *) in
+ expr_let x240 := Z.add_with_get_carry(2^64, 0, 0, x236₁) (* : uint64_t, uint1_t *) in
+ expr_let x241 := Z.add_with_get_carry(2^64, x240₂, 0, x237₁) (* : uint1_t, uint1_t *) in
+ expr_let x242 := Z.add_with_get_carry(2^64, x241₂, 0, x238₁) (* : uint64_t, uint1_t *) in
+ expr_let x243 := Z.add_with_get_carry(2^64, x242₂, 0, x239₁) (* : uint64_t, uint1_t *) in
+ expr_let x244 := Z.add_with_get_carry(2^64, 0, 0, x240₁) (* : uint64_t, uint1_t *) in
+ expr_let x245 := Z.add_with_get_carry(2^64, x244₂, 0, x241₁) (* : uint1_t, uint1_t *) in
+ expr_let x246 := Z.add_with_get_carry(2^64, x245₂, 0, x242₁) (* : uint64_t, uint1_t *) in
+ expr_let x247 := Z.add_with_get_carry(2^64, x246₂, 0, x243₁) (* : uint64_t, uint1_t *) in
+ expr_let x248 := Z.add_with_get_carry(2^64, 0, 0, x244₁) (* : uint64_t, uint1_t *) in
+ expr_let x249 := Z.add_with_get_carry(2^64, x248₂, 0, x245₁) (* : uint1_t, uint1_t *) in
+ expr_let x250 := Z.add_with_get_carry(2^64, x249₂, 0, x246₁) (* : uint64_t, uint1_t *) in
+ expr_let x251 := Z.add_with_get_carry(2^64, x250₂, 0, x247₁) (* : uint64_t, uint1_t *) in
+ expr_let x252 := Z.add_with_get_carry(2^64, 0, 0, x248₁) (* : uint64_t, uint1_t *) in
+ expr_let x253 := Z.add_with_get_carry(2^64, x252₂, 0, x249₁) (* : uint1_t, uint1_t *) in
+ expr_let x254 := Z.add_with_get_carry(2^64, x253₂, 0, x250₁) (* : uint64_t, uint1_t *) in
+ expr_let x255 := Z.add_with_get_carry(2^64, x254₂, 0, x251₁) (* : uint64_t, uint1_t *) in
+ expr_let x256 := Z.add_with_get_carry(2^64, 0, 0, x252₁) (* : uint64_t, uint1_t *) in
+ expr_let x257 := Z.add_with_get_carry(2^64, x256₂, 0, x253₁) (* : uint1_t, uint1_t *) in
+ expr_let x258 := Z.add_with_get_carry(2^64, x257₂, 0, x254₁) (* : uint64_t, uint1_t *) in
+ expr_let x259 := Z.add_with_get_carry(2^64, x258₂, 0, x255₁) (* : uint64_t, uint1_t *) in
+ expr_let x260 := Z.add_with_get_carry(2^64, 0, 0, x256₁) (* : uint64_t, uint1_t *) in
+ expr_let x261 := Z.add_with_get_carry(2^64, x260₂, 0, x257₁) (* : uint1_t, uint1_t *) in
+ expr_let x262 := Z.add_with_get_carry(2^64, x261₂, 0, x258₁) (* : uint64_t, uint1_t *) in
+ expr_let x263 := Z.add_with_get_carry(2^64, x262₂, 0, x259₁) (* : uint64_t, uint1_t *) in
+ expr_let x264 := Z.add_with_get_carry(2^64, 0, 0, x260₁) (* : uint64_t, uint1_t *) in
+ expr_let x265 := Z.add_with_get_carry(2^64, x264₂, (x206₁ * 1), x261₁) (* : uint64_t, uint1_t *) in
+ expr_let x266 := Z.add_with_get_carry(2^64, x265₂, (x205₁ * 1), x262₁) (* : uint64_t, uint1_t *) in
+ expr_let x267 := Z.add_with_get_carry(2^64, x266₂, (x204₁ * 1), x263₁) (* : uint64_t, uint1_t *) in
+ expr_let x268 := Z.add_with_get_carry(2^64, (Z.add_with_get_carry(2^64, 0, x264₁, x198₁))₂, x265₁, x199₁) (* : uint64_t, uint1_t *) in
+ expr_let x269 := Z.add_with_get_carry(2^64, x268₂, x266₁, x200₁) (* : uint64_t, uint1_t *) in
+ expr_let x270 := Z.add_with_get_carry(2^64, x269₂, x267₁, x201₁) (* : uint64_t, uint1_t *) in
+ expr_let x271 := Z.add_with_get_carry(2^64, x270₂, (Z.add_with_get_carry(2^64, x267₂, 0, (Z.add_with_get_carry(2^64, x263₂, 0, (Z.add_with_get_carry(2^64, x259₂, 0, (Z.add_with_get_carry(2^64, x255₂, 0, (Z.add_with_get_carry(2^64, x251₂, 0, (Z.add_with_get_carry(2^64, x247₂, 0, (Z.add_with_get_carry(2^64, x243₂, 0, (Z.add_with_get_carry(2^64, x239₂, 0, (Z.add_with_get_carry(2^64, x235₂, 0, (Z.add_with_get_carry(2^64, x231₂, 0, (Z.add_with_get_carry(2^64, x227₂, 0, (Z.add_with_get_carry(2^64, x223₂, 0, (Z.add_with_get_carry(2^64, x219₂, 0, (Z.add_with_get_carry(2^64, x215₂, 0, (Z.add_with_get_carry(2^64, x211₂, 0, (x204₂ * 1)))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁, x202₁) (* : uint64_t, uint1_t *) in
+ expr_let x272 := Z.mul_split(2^64, x1[2], 1) (* : uint64_t, uint1_t *) in
+ expr_let x273 := Z.add_with_get_carry(2^64, 0, 0, (x272₁ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x274 := Z.add_with_get_carry(2^64, x273₂, 0, (x272₂ * 1)) (* : uint1_t, uint1_t *) in
+ expr_let x275 := Z.add_with_get_carry(2^64, x274₂, 0, (1 * 0)) (* : uint1_t, uint1_t *) in
+ expr_let x276 := Z.add_with_get_carry(2^64, x275₂, 0, (1 * 0)) (* : uint1_t, uint1_t *) in
+ expr_let x277 := Z.add_with_get_carry(2^64, 0, 0, x273₁) (* : uint64_t, uint1_t *) in
+ expr_let x278 := Z.add_with_get_carry(2^64, x277₂, 0, x274₁) (* : uint1_t, uint1_t *) in
+ expr_let x279 := Z.add_with_get_carry(2^64, x278₂, 0, x275₁) (* : uint1_t, uint1_t *) in
+ expr_let x280 := Z.add_with_get_carry(2^64, x279₂, 0, x276₁) (* : uint1_t, uint1_t *) in
+ expr_let x281 := Z.add_with_get_carry(2^64, 0, 0, x277₁) (* : uint64_t, uint1_t *) in
+ expr_let x282 := Z.add_with_get_carry(2^64, x281₂, 0, x278₁) (* : uint1_t, uint1_t *) in
+ expr_let x283 := Z.add_with_get_carry(2^64, x282₂, 0, x279₁) (* : uint1_t, uint1_t *) in
+ expr_let x284 := Z.add_with_get_carry(2^64, x283₂, 0, x280₁) (* : uint1_t, uint1_t *) in
+ expr_let x285 := Z.add_with_get_carry(2^64, 0, 0, x281₁) (* : uint64_t, uint1_t *) in
+ expr_let x286 := Z.add_with_get_carry(2^64, x285₂, 0, x282₁) (* : uint1_t, uint1_t *) in
+ expr_let x287 := Z.add_with_get_carry(2^64, x286₂, 0, x283₁) (* : uint1_t, uint1_t *) in
+ expr_let x288 := Z.add_with_get_carry(2^64, x287₂, 0, x284₁) (* : uint1_t, uint1_t *) in
+ expr_let x289 := Z.add_with_get_carry(2^64, 0, 0, x285₁) (* : uint64_t, uint1_t *) in
+ expr_let x290 := Z.add_with_get_carry(2^64, x289₂, 0, x286₁) (* : uint1_t, uint1_t *) in
+ expr_let x291 := Z.add_with_get_carry(2^64, x290₂, 0, x287₁) (* : uint1_t, uint1_t *) in
+ expr_let x292 := Z.add_with_get_carry(2^64, x291₂, 0, x288₁) (* : uint1_t, uint1_t *) in
+ expr_let x293 := Z.add_with_get_carry(2^64, 0, 0, x289₁) (* : uint64_t, uint1_t *) in
+ expr_let x294 := Z.add_with_get_carry(2^64, x293₂, 0, x290₁) (* : uint1_t, uint1_t *) in
+ expr_let x295 := Z.add_with_get_carry(2^64, x294₂, 0, x291₁) (* : uint1_t, uint1_t *) in
+ expr_let x296 := Z.add_with_get_carry(2^64, x295₂, 0, x292₁) (* : uint1_t, uint1_t *) in
+ expr_let x297 := Z.add_with_get_carry(2^64, 0, 0, x293₁) (* : uint64_t, uint1_t *) in
+ expr_let x298 := Z.add_with_get_carry(2^64, x297₂, 0, x294₁) (* : uint1_t, uint1_t *) in
+ expr_let x299 := Z.add_with_get_carry(2^64, x298₂, 0, x295₁) (* : uint1_t, uint1_t *) in
+ expr_let x300 := Z.add_with_get_carry(2^64, x299₂, 0, x296₁) (* : uint1_t, uint1_t *) in
+ expr_let x301 := Z.add_with_get_carry(2^64, 0, 0, x297₁) (* : uint64_t, uint1_t *) in
+ expr_let x302 := Z.add_with_get_carry(2^64, x301₂, 0, x298₁) (* : uint1_t, uint1_t *) in
+ expr_let x303 := Z.add_with_get_carry(2^64, x302₂, 0, x299₁) (* : uint1_t, uint1_t *) in
+ expr_let x304 := Z.add_with_get_carry(2^64, x303₂, 0, x300₁) (* : uint1_t, uint1_t *) in
+ expr_let x305 := Z.add_with_get_carry(2^64, 0, 0, x301₁) (* : uint64_t, uint1_t *) in
+ expr_let x306 := Z.add_with_get_carry(2^64, x305₂, 0, x302₁) (* : uint1_t, uint1_t *) in
+ expr_let x307 := Z.add_with_get_carry(2^64, x306₂, 0, x303₁) (* : uint1_t, uint1_t *) in
+ expr_let x308 := Z.add_with_get_carry(2^64, x307₂, 0, x304₁) (* : uint1_t, uint1_t *) in
+ expr_let x309 := Z.add_with_get_carry(2^64, 0, 0, x305₁) (* : uint64_t, uint1_t *) in
+ expr_let x310 := Z.add_with_get_carry(2^64, x309₂, 0, x306₁) (* : uint1_t, uint1_t *) in
+ expr_let x311 := Z.add_with_get_carry(2^64, x310₂, 0, x307₁) (* : uint1_t, uint1_t *) in
+ expr_let x312 := Z.add_with_get_carry(2^64, x311₂, 0, x308₁) (* : uint1_t, uint1_t *) in
+ expr_let x313 := Z.add_with_get_carry(2^64, 0, 0, x309₁) (* : uint64_t, uint1_t *) in
+ expr_let x314 := Z.add_with_get_carry(2^64, x313₂, 0, x310₁) (* : uint1_t, uint1_t *) in
+ expr_let x315 := Z.add_with_get_carry(2^64, x314₂, 0, x311₁) (* : uint1_t, uint1_t *) in
+ expr_let x316 := Z.add_with_get_carry(2^64, x315₂, 0, x312₁) (* : uint1_t, uint1_t *) in
+ expr_let x317 := Z.add_with_get_carry(2^64, 0, 0, x313₁) (* : uint64_t, uint1_t *) in
+ expr_let x318 := Z.add_with_get_carry(2^64, x317₂, 0, x314₁) (* : uint1_t, uint1_t *) in
+ expr_let x319 := Z.add_with_get_carry(2^64, x318₂, 0, x315₁) (* : uint1_t, uint1_t *) in
+ expr_let x320 := Z.add_with_get_carry(2^64, x319₂, 0, x316₁) (* : uint1_t, uint1_t *) in
+ expr_let x321 := Z.add_with_get_carry(2^64, 0, 0, x317₁) (* : uint64_t, uint1_t *) in
+ expr_let x322 := Z.add_with_get_carry(2^64, x321₂, 0, x318₁) (* : uint1_t, uint1_t *) in
+ expr_let x323 := Z.add_with_get_carry(2^64, x322₂, 0, x319₁) (* : uint1_t, uint1_t *) in
+ expr_let x324 := Z.add_with_get_carry(2^64, x323₂, 0, x320₁) (* : uint1_t, uint1_t *) in
+ expr_let x325 := Z.add_with_get_carry(2^64, 0, 0, x321₁) (* : uint64_t, uint1_t *) in
+ expr_let x326 := Z.add_with_get_carry(2^64, x325₂, 0, x322₁) (* : uint1_t, uint1_t *) in
+ expr_let x327 := Z.add_with_get_carry(2^64, x326₂, 0, x323₁) (* : uint1_t, uint1_t *) in
+ expr_let x328 := Z.add_with_get_carry(2^64, x327₂, 0, x324₁) (* : uint1_t, uint1_t *) in
+ expr_let x329 := Z.add_with_get_carry(2^64, 0, 0, x325₁) (* : uint64_t, uint1_t *) in
+ expr_let x330 := Z.add_with_get_carry(2^64, x329₂, (1 * 0), x326₁) (* : uint1_t, uint1_t *) in
+ expr_let x331 := Z.add_with_get_carry(2^64, x330₂, (1 * 0), x327₁) (* : uint1_t, uint1_t *) in
+ expr_let x332 := Z.add_with_get_carry(2^64, x331₂, (1 * 0), x328₁) (* : uint1_t, uint1_t *) in
+ expr_let x333 := Z.add_with_get_carry(2^64, 0, x329₁, x268₁) (* : uint64_t, uint1_t *) in
+ expr_let x334 := Z.add_with_get_carry(2^64, x333₂, x330₁, x269₁) (* : uint64_t, uint1_t *) in
+ expr_let x335 := Z.add_with_get_carry(2^64, x334₂, x331₁, x270₁) (* : uint64_t, uint1_t *) in
+ expr_let x336 := Z.add_with_get_carry(2^64, x335₂, x332₁, x271₁) (* : uint64_t, uint1_t *) in
+ expr_let x337 := Z.add_with_get_carry(2^64, x336₂, (Z.add_with_get_carry(2^64, x332₂, 0, (Z.add_with_get_carry(2^64, x328₂, 0, (Z.add_with_get_carry(2^64, x324₂, 0, (Z.add_with_get_carry(2^64, x320₂, 0, (Z.add_with_get_carry(2^64, x316₂, 0, (Z.add_with_get_carry(2^64, x312₂, 0, (Z.add_with_get_carry(2^64, x308₂, 0, (Z.add_with_get_carry(2^64, x304₂, 0, (Z.add_with_get_carry(2^64, x300₂, 0, (Z.add_with_get_carry(2^64, x296₂, 0, (Z.add_with_get_carry(2^64, x292₂, 0, (Z.add_with_get_carry(2^64, x288₂, 0, (Z.add_with_get_carry(2^64, x284₂, 0, (Z.add_with_get_carry(2^64, x280₂, 0, (Z.add_with_get_carry(2^64, x276₂, 0, (1 * 0)))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁, (Z.add_with_get_carry(2^64, x271₂, 0, x202₂))₁) (* : uint1_t, uint1_t *) in
+ expr_let x338 := (Z.mul_split(2^64, x333₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x339 := Z.mul_split(2^64, x338, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x340 := Z.mul_split(2^64, x338, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x341 := Z.mul_split(2^64, x338, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x342 := Z.mul_split(2^64, x338, 1) (* : uint64_t, uint1_t *) in
+ expr_let x343 := Z.add_with_get_carry(2^64, 0, 0, (x342₁ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x344 := Z.add_with_get_carry(2^64, x343₂, 0, (x342₂ * 1)) (* : uint1_t, uint1_t *) in
+ expr_let x345 := Z.add_with_get_carry(2^64, x344₂, 0, (x341₂ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x346 := Z.add_with_get_carry(2^64, x345₂, 0, (x340₂ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x347 := Z.add_with_get_carry(2^64, 0, 0, x343₁) (* : uint64_t, uint1_t *) in
+ expr_let x348 := Z.add_with_get_carry(2^64, x347₂, 0, x344₁) (* : uint1_t, uint1_t *) in
+ expr_let x349 := Z.add_with_get_carry(2^64, x348₂, 0, x345₁) (* : uint64_t, uint1_t *) in
+ expr_let x350 := Z.add_with_get_carry(2^64, x349₂, 0, x346₁) (* : uint64_t, uint1_t *) in
+ expr_let x351 := Z.add_with_get_carry(2^64, 0, 0, x347₁) (* : uint64_t, uint1_t *) in
+ expr_let x352 := Z.add_with_get_carry(2^64, x351₂, 0, x348₁) (* : uint1_t, uint1_t *) in
+ expr_let x353 := Z.add_with_get_carry(2^64, x352₂, 0, x349₁) (* : uint64_t, uint1_t *) in
+ expr_let x354 := Z.add_with_get_carry(2^64, x353₂, 0, x350₁) (* : uint64_t, uint1_t *) in
+ expr_let x355 := Z.add_with_get_carry(2^64, 0, 0, x351₁) (* : uint64_t, uint1_t *) in
+ expr_let x356 := Z.add_with_get_carry(2^64, x355₂, 0, x352₁) (* : uint1_t, uint1_t *) in
+ expr_let x357 := Z.add_with_get_carry(2^64, x356₂, 0, x353₁) (* : uint64_t, uint1_t *) in
+ expr_let x358 := Z.add_with_get_carry(2^64, x357₂, 0, x354₁) (* : uint64_t, uint1_t *) in
+ expr_let x359 := Z.add_with_get_carry(2^64, 0, 0, x355₁) (* : uint64_t, uint1_t *) in
+ expr_let x360 := Z.add_with_get_carry(2^64, x359₂, 0, x356₁) (* : uint1_t, uint1_t *) in
+ expr_let x361 := Z.add_with_get_carry(2^64, x360₂, 0, x357₁) (* : uint64_t, uint1_t *) in
+ expr_let x362 := Z.add_with_get_carry(2^64, x361₂, 0, x358₁) (* : uint64_t, uint1_t *) in
+ expr_let x363 := Z.add_with_get_carry(2^64, 0, 0, x359₁) (* : uint64_t, uint1_t *) in
+ expr_let x364 := Z.add_with_get_carry(2^64, x363₂, 0, x360₁) (* : uint1_t, uint1_t *) in
+ expr_let x365 := Z.add_with_get_carry(2^64, x364₂, 0, x361₁) (* : uint64_t, uint1_t *) in
+ expr_let x366 := Z.add_with_get_carry(2^64, x365₂, 0, x362₁) (* : uint64_t, uint1_t *) in
+ expr_let x367 := Z.add_with_get_carry(2^64, 0, 0, x363₁) (* : uint64_t, uint1_t *) in
+ expr_let x368 := Z.add_with_get_carry(2^64, x367₂, 0, x364₁) (* : uint1_t, uint1_t *) in
+ expr_let x369 := Z.add_with_get_carry(2^64, x368₂, 0, x365₁) (* : uint64_t, uint1_t *) in
+ expr_let x370 := Z.add_with_get_carry(2^64, x369₂, 0, x366₁) (* : uint64_t, uint1_t *) in
+ expr_let x371 := Z.add_with_get_carry(2^64, 0, 0, x367₁) (* : uint64_t, uint1_t *) in
+ expr_let x372 := Z.add_with_get_carry(2^64, x371₂, 0, x368₁) (* : uint1_t, uint1_t *) in
+ expr_let x373 := Z.add_with_get_carry(2^64, x372₂, 0, x369₁) (* : uint64_t, uint1_t *) in
+ expr_let x374 := Z.add_with_get_carry(2^64, x373₂, 0, x370₁) (* : uint64_t, uint1_t *) in
+ expr_let x375 := Z.add_with_get_carry(2^64, 0, 0, x371₁) (* : uint64_t, uint1_t *) in
+ expr_let x376 := Z.add_with_get_carry(2^64, x375₂, 0, x372₁) (* : uint1_t, uint1_t *) in
+ expr_let x377 := Z.add_with_get_carry(2^64, x376₂, 0, x373₁) (* : uint64_t, uint1_t *) in
+ expr_let x378 := Z.add_with_get_carry(2^64, x377₂, 0, x374₁) (* : uint64_t, uint1_t *) in
+ expr_let x379 := Z.add_with_get_carry(2^64, 0, 0, x375₁) (* : uint64_t, uint1_t *) in
+ expr_let x380 := Z.add_with_get_carry(2^64, x379₂, 0, x376₁) (* : uint1_t, uint1_t *) in
+ expr_let x381 := Z.add_with_get_carry(2^64, x380₂, 0, x377₁) (* : uint64_t, uint1_t *) in
+ expr_let x382 := Z.add_with_get_carry(2^64, x381₂, 0, x378₁) (* : uint64_t, uint1_t *) in
+ expr_let x383 := Z.add_with_get_carry(2^64, 0, 0, x379₁) (* : uint64_t, uint1_t *) in
+ expr_let x384 := Z.add_with_get_carry(2^64, x383₂, 0, x380₁) (* : uint1_t, uint1_t *) in
+ expr_let x385 := Z.add_with_get_carry(2^64, x384₂, 0, x381₁) (* : uint64_t, uint1_t *) in
+ expr_let x386 := Z.add_with_get_carry(2^64, x385₂, 0, x382₁) (* : uint64_t, uint1_t *) in
+ expr_let x387 := Z.add_with_get_carry(2^64, 0, 0, x383₁) (* : uint64_t, uint1_t *) in
+ expr_let x388 := Z.add_with_get_carry(2^64, x387₂, 0, x384₁) (* : uint1_t, uint1_t *) in
+ expr_let x389 := Z.add_with_get_carry(2^64, x388₂, 0, x385₁) (* : uint64_t, uint1_t *) in
+ expr_let x390 := Z.add_with_get_carry(2^64, x389₂, 0, x386₁) (* : uint64_t, uint1_t *) in
+ expr_let x391 := Z.add_with_get_carry(2^64, 0, 0, x387₁) (* : uint64_t, uint1_t *) in
+ expr_let x392 := Z.add_with_get_carry(2^64, x391₂, 0, x388₁) (* : uint1_t, uint1_t *) in
+ expr_let x393 := Z.add_with_get_carry(2^64, x392₂, 0, x389₁) (* : uint64_t, uint1_t *) in
+ expr_let x394 := Z.add_with_get_carry(2^64, x393₂, 0, x390₁) (* : uint64_t, uint1_t *) in
+ expr_let x395 := Z.add_with_get_carry(2^64, 0, 0, x391₁) (* : uint64_t, uint1_t *) in
+ expr_let x396 := Z.add_with_get_carry(2^64, x395₂, 0, x392₁) (* : uint1_t, uint1_t *) in
+ expr_let x397 := Z.add_with_get_carry(2^64, x396₂, 0, x393₁) (* : uint64_t, uint1_t *) in
+ expr_let x398 := Z.add_with_get_carry(2^64, x397₂, 0, x394₁) (* : uint64_t, uint1_t *) in
+ expr_let x399 := Z.add_with_get_carry(2^64, 0, 0, x395₁) (* : uint64_t, uint1_t *) in
+ expr_let x400 := Z.add_with_get_carry(2^64, x399₂, (x341₁ * 1), x396₁) (* : uint64_t, uint1_t *) in
+ expr_let x401 := Z.add_with_get_carry(2^64, x400₂, (x340₁ * 1), x397₁) (* : uint64_t, uint1_t *) in
+ expr_let x402 := Z.add_with_get_carry(2^64, x401₂, (x339₁ * 1), x398₁) (* : uint64_t, uint1_t *) in
+ expr_let x403 := Z.add_with_get_carry(2^64, (Z.add_with_get_carry(2^64, 0, x399₁, x333₁))₂, x400₁, x334₁) (* : uint64_t, uint1_t *) in
+ expr_let x404 := Z.add_with_get_carry(2^64, x403₂, x401₁, x335₁) (* : uint64_t, uint1_t *) in
+ expr_let x405 := Z.add_with_get_carry(2^64, x404₂, x402₁, x336₁) (* : uint64_t, uint1_t *) in
+ expr_let x406 := Z.add_with_get_carry(2^64, x405₂, (Z.add_with_get_carry(2^64, x402₂, 0, (Z.add_with_get_carry(2^64, x398₂, 0, (Z.add_with_get_carry(2^64, x394₂, 0, (Z.add_with_get_carry(2^64, x390₂, 0, (Z.add_with_get_carry(2^64, x386₂, 0, (Z.add_with_get_carry(2^64, x382₂, 0, (Z.add_with_get_carry(2^64, x378₂, 0, (Z.add_with_get_carry(2^64, x374₂, 0, (Z.add_with_get_carry(2^64, x370₂, 0, (Z.add_with_get_carry(2^64, x366₂, 0, (Z.add_with_get_carry(2^64, x362₂, 0, (Z.add_with_get_carry(2^64, x358₂, 0, (Z.add_with_get_carry(2^64, x354₂, 0, (Z.add_with_get_carry(2^64, x350₂, 0, (Z.add_with_get_carry(2^64, x346₂, 0, (x339₂ * 1)))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁, x337₁) (* : uint64_t, uint1_t *) in
+ expr_let x407 := Z.mul_split(2^64, x1[3], 1) (* : uint64_t, uint1_t *) in
+ expr_let x408 := Z.add_with_get_carry(2^64, 0, 0, (x407₁ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x409 := Z.add_with_get_carry(2^64, x408₂, 0, (x407₂ * 1)) (* : uint1_t, uint1_t *) in
+ expr_let x410 := Z.add_with_get_carry(2^64, x409₂, 0, (1 * 0)) (* : uint1_t, uint1_t *) in
+ expr_let x411 := Z.add_with_get_carry(2^64, x410₂, 0, (1 * 0)) (* : uint1_t, uint1_t *) in
+ expr_let x412 := Z.add_with_get_carry(2^64, 0, 0, x408₁) (* : uint64_t, uint1_t *) in
+ expr_let x413 := Z.add_with_get_carry(2^64, x412₂, 0, x409₁) (* : uint1_t, uint1_t *) in
+ expr_let x414 := Z.add_with_get_carry(2^64, x413₂, 0, x410₁) (* : uint1_t, uint1_t *) in
+ expr_let x415 := Z.add_with_get_carry(2^64, x414₂, 0, x411₁) (* : uint1_t, uint1_t *) in
+ expr_let x416 := Z.add_with_get_carry(2^64, 0, 0, x412₁) (* : uint64_t, uint1_t *) in
+ expr_let x417 := Z.add_with_get_carry(2^64, x416₂, 0, x413₁) (* : uint1_t, uint1_t *) in
+ expr_let x418 := Z.add_with_get_carry(2^64, x417₂, 0, x414₁) (* : uint1_t, uint1_t *) in
+ expr_let x419 := Z.add_with_get_carry(2^64, x418₂, 0, x415₁) (* : uint1_t, uint1_t *) in
+ expr_let x420 := Z.add_with_get_carry(2^64, 0, 0, x416₁) (* : uint64_t, uint1_t *) in
+ expr_let x421 := Z.add_with_get_carry(2^64, x420₂, 0, x417₁) (* : uint1_t, uint1_t *) in
+ expr_let x422 := Z.add_with_get_carry(2^64, x421₂, 0, x418₁) (* : uint1_t, uint1_t *) in
+ expr_let x423 := Z.add_with_get_carry(2^64, x422₂, 0, x419₁) (* : uint1_t, uint1_t *) in
+ expr_let x424 := Z.add_with_get_carry(2^64, 0, 0, x420₁) (* : uint64_t, uint1_t *) in
+ expr_let x425 := Z.add_with_get_carry(2^64, x424₂, 0, x421₁) (* : uint1_t, uint1_t *) in
+ expr_let x426 := Z.add_with_get_carry(2^64, x425₂, 0, x422₁) (* : uint1_t, uint1_t *) in
+ expr_let x427 := Z.add_with_get_carry(2^64, x426₂, 0, x423₁) (* : uint1_t, uint1_t *) in
+ expr_let x428 := Z.add_with_get_carry(2^64, 0, 0, x424₁) (* : uint64_t, uint1_t *) in
+ expr_let x429 := Z.add_with_get_carry(2^64, x428₂, 0, x425₁) (* : uint1_t, uint1_t *) in
+ expr_let x430 := Z.add_with_get_carry(2^64, x429₂, 0, x426₁) (* : uint1_t, uint1_t *) in
+ expr_let x431 := Z.add_with_get_carry(2^64, x430₂, 0, x427₁) (* : uint1_t, uint1_t *) in
+ expr_let x432 := Z.add_with_get_carry(2^64, 0, 0, x428₁) (* : uint64_t, uint1_t *) in
+ expr_let x433 := Z.add_with_get_carry(2^64, x432₂, 0, x429₁) (* : uint1_t, uint1_t *) in
+ expr_let x434 := Z.add_with_get_carry(2^64, x433₂, 0, x430₁) (* : uint1_t, uint1_t *) in
+ expr_let x435 := Z.add_with_get_carry(2^64, x434₂, 0, x431₁) (* : uint1_t, uint1_t *) in
+ expr_let x436 := Z.add_with_get_carry(2^64, 0, 0, x432₁) (* : uint64_t, uint1_t *) in
+ expr_let x437 := Z.add_with_get_carry(2^64, x436₂, 0, x433₁) (* : uint1_t, uint1_t *) in
+ expr_let x438 := Z.add_with_get_carry(2^64, x437₂, 0, x434₁) (* : uint1_t, uint1_t *) in
+ expr_let x439 := Z.add_with_get_carry(2^64, x438₂, 0, x435₁) (* : uint1_t, uint1_t *) in
+ expr_let x440 := Z.add_with_get_carry(2^64, 0, 0, x436₁) (* : uint64_t, uint1_t *) in
+ expr_let x441 := Z.add_with_get_carry(2^64, x440₂, 0, x437₁) (* : uint1_t, uint1_t *) in
+ expr_let x442 := Z.add_with_get_carry(2^64, x441₂, 0, x438₁) (* : uint1_t, uint1_t *) in
+ expr_let x443 := Z.add_with_get_carry(2^64, x442₂, 0, x439₁) (* : uint1_t, uint1_t *) in
+ expr_let x444 := Z.add_with_get_carry(2^64, 0, 0, x440₁) (* : uint64_t, uint1_t *) in
+ expr_let x445 := Z.add_with_get_carry(2^64, x444₂, 0, x441₁) (* : uint1_t, uint1_t *) in
+ expr_let x446 := Z.add_with_get_carry(2^64, x445₂, 0, x442₁) (* : uint1_t, uint1_t *) in
+ expr_let x447 := Z.add_with_get_carry(2^64, x446₂, 0, x443₁) (* : uint1_t, uint1_t *) in
+ expr_let x448 := Z.add_with_get_carry(2^64, 0, 0, x444₁) (* : uint64_t, uint1_t *) in
+ expr_let x449 := Z.add_with_get_carry(2^64, x448₂, 0, x445₁) (* : uint1_t, uint1_t *) in
+ expr_let x450 := Z.add_with_get_carry(2^64, x449₂, 0, x446₁) (* : uint1_t, uint1_t *) in
+ expr_let x451 := Z.add_with_get_carry(2^64, x450₂, 0, x447₁) (* : uint1_t, uint1_t *) in
+ expr_let x452 := Z.add_with_get_carry(2^64, 0, 0, x448₁) (* : uint64_t, uint1_t *) in
+ expr_let x453 := Z.add_with_get_carry(2^64, x452₂, 0, x449₁) (* : uint1_t, uint1_t *) in
+ expr_let x454 := Z.add_with_get_carry(2^64, x453₂, 0, x450₁) (* : uint1_t, uint1_t *) in
+ expr_let x455 := Z.add_with_get_carry(2^64, x454₂, 0, x451₁) (* : uint1_t, uint1_t *) in
+ expr_let x456 := Z.add_with_get_carry(2^64, 0, 0, x452₁) (* : uint64_t, uint1_t *) in
+ expr_let x457 := Z.add_with_get_carry(2^64, x456₂, 0, x453₁) (* : uint1_t, uint1_t *) in
+ expr_let x458 := Z.add_with_get_carry(2^64, x457₂, 0, x454₁) (* : uint1_t, uint1_t *) in
+ expr_let x459 := Z.add_with_get_carry(2^64, x458₂, 0, x455₁) (* : uint1_t, uint1_t *) in
+ expr_let x460 := Z.add_with_get_carry(2^64, 0, 0, x456₁) (* : uint64_t, uint1_t *) in
+ expr_let x461 := Z.add_with_get_carry(2^64, x460₂, 0, x457₁) (* : uint1_t, uint1_t *) in
+ expr_let x462 := Z.add_with_get_carry(2^64, x461₂, 0, x458₁) (* : uint1_t, uint1_t *) in
+ expr_let x463 := Z.add_with_get_carry(2^64, x462₂, 0, x459₁) (* : uint1_t, uint1_t *) in
+ expr_let x464 := Z.add_with_get_carry(2^64, 0, 0, x460₁) (* : uint64_t, uint1_t *) in
+ expr_let x465 := Z.add_with_get_carry(2^64, x464₂, (1 * 0), x461₁) (* : uint1_t, uint1_t *) in
+ expr_let x466 := Z.add_with_get_carry(2^64, x465₂, (1 * 0), x462₁) (* : uint1_t, uint1_t *) in
+ expr_let x467 := Z.add_with_get_carry(2^64, x466₂, (1 * 0), x463₁) (* : uint1_t, uint1_t *) in
+ expr_let x468 := Z.add_with_get_carry(2^64, 0, x464₁, x403₁) (* : uint64_t, uint1_t *) in
+ expr_let x469 := Z.add_with_get_carry(2^64, x468₂, x465₁, x404₁) (* : uint64_t, uint1_t *) in
+ expr_let x470 := Z.add_with_get_carry(2^64, x469₂, x466₁, x405₁) (* : uint64_t, uint1_t *) in
+ expr_let x471 := Z.add_with_get_carry(2^64, x470₂, x467₁, x406₁) (* : uint64_t, uint1_t *) in
+ expr_let x472 := Z.add_with_get_carry(2^64, x471₂, (Z.add_with_get_carry(2^64, x467₂, 0, (Z.add_with_get_carry(2^64, x463₂, 0, (Z.add_with_get_carry(2^64, x459₂, 0, (Z.add_with_get_carry(2^64, x455₂, 0, (Z.add_with_get_carry(2^64, x451₂, 0, (Z.add_with_get_carry(2^64, x447₂, 0, (Z.add_with_get_carry(2^64, x443₂, 0, (Z.add_with_get_carry(2^64, x439₂, 0, (Z.add_with_get_carry(2^64, x435₂, 0, (Z.add_with_get_carry(2^64, x431₂, 0, (Z.add_with_get_carry(2^64, x427₂, 0, (Z.add_with_get_carry(2^64, x423₂, 0, (Z.add_with_get_carry(2^64, x419₂, 0, (Z.add_with_get_carry(2^64, x415₂, 0, (Z.add_with_get_carry(2^64, x411₂, 0, (1 * 0)))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁, (Z.add_with_get_carry(2^64, x406₂, 0, x337₂))₁) (* : uint1_t, uint1_t *) in
+ expr_let x473 := (Z.mul_split(2^64, x468₁, 2^64-1))₁ (* : uint64_t *) in
+ expr_let x474 := Z.mul_split(2^64, x473, 2^32-1) (* : uint64_t, uint64_t *) in
+ expr_let x475 := Z.mul_split(2^64, x473, 2^64-1) (* : uint64_t, uint64_t *) in
+ expr_let x476 := Z.mul_split(2^64, x473, 0xffffffff00000000) (* : uint64_t, uint64_t *) in
+ expr_let x477 := Z.mul_split(2^64, x473, 1) (* : uint64_t, uint1_t *) in
+ expr_let x478 := Z.add_with_get_carry(2^64, 0, 0, (x477₁ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x479 := Z.add_with_get_carry(2^64, x478₂, 0, (x477₂ * 1)) (* : uint1_t, uint1_t *) in
+ expr_let x480 := Z.add_with_get_carry(2^64, x479₂, 0, (x476₂ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x481 := Z.add_with_get_carry(2^64, x480₂, 0, (x475₂ * 1)) (* : uint64_t, uint1_t *) in
+ expr_let x482 := Z.add_with_get_carry(2^64, 0, 0, x478₁) (* : uint64_t, uint1_t *) in
+ expr_let x483 := Z.add_with_get_carry(2^64, x482₂, 0, x479₁) (* : uint1_t, uint1_t *) in
+ expr_let x484 := Z.add_with_get_carry(2^64, x483₂, 0, x480₁) (* : uint64_t, uint1_t *) in
+ expr_let x485 := Z.add_with_get_carry(2^64, x484₂, 0, x481₁) (* : uint64_t, uint1_t *) in
+ expr_let x486 := Z.add_with_get_carry(2^64, 0, 0, x482₁) (* : uint64_t, uint1_t *) in
+ expr_let x487 := Z.add_with_get_carry(2^64, x486₂, 0, x483₁) (* : uint1_t, uint1_t *) in
+ expr_let x488 := Z.add_with_get_carry(2^64, x487₂, 0, x484₁) (* : uint64_t, uint1_t *) in
+ expr_let x489 := Z.add_with_get_carry(2^64, x488₂, 0, x485₁) (* : uint64_t, uint1_t *) in
+ expr_let x490 := Z.add_with_get_carry(2^64, 0, 0, x486₁) (* : uint64_t, uint1_t *) in
+ expr_let x491 := Z.add_with_get_carry(2^64, x490₂, 0, x487₁) (* : uint1_t, uint1_t *) in
+ expr_let x492 := Z.add_with_get_carry(2^64, x491₂, 0, x488₁) (* : uint64_t, uint1_t *) in
+ expr_let x493 := Z.add_with_get_carry(2^64, x492₂, 0, x489₁) (* : uint64_t, uint1_t *) in
+ expr_let x494 := Z.add_with_get_carry(2^64, 0, 0, x490₁) (* : uint64_t, uint1_t *) in
+ expr_let x495 := Z.add_with_get_carry(2^64, x494₂, 0, x491₁) (* : uint1_t, uint1_t *) in
+ expr_let x496 := Z.add_with_get_carry(2^64, x495₂, 0, x492₁) (* : uint64_t, uint1_t *) in
+ expr_let x497 := Z.add_with_get_carry(2^64, x496₂, 0, x493₁) (* : uint64_t, uint1_t *) in
+ expr_let x498 := Z.add_with_get_carry(2^64, 0, 0, x494₁) (* : uint64_t, uint1_t *) in
+ expr_let x499 := Z.add_with_get_carry(2^64, x498₂, 0, x495₁) (* : uint1_t, uint1_t *) in
+ expr_let x500 := Z.add_with_get_carry(2^64, x499₂, 0, x496₁) (* : uint64_t, uint1_t *) in
+ expr_let x501 := Z.add_with_get_carry(2^64, x500₂, 0, x497₁) (* : uint64_t, uint1_t *) in
+ expr_let x502 := Z.add_with_get_carry(2^64, 0, 0, x498₁) (* : uint64_t, uint1_t *) in
+ expr_let x503 := Z.add_with_get_carry(2^64, x502₂, 0, x499₁) (* : uint1_t, uint1_t *) in
+ expr_let x504 := Z.add_with_get_carry(2^64, x503₂, 0, x500₁) (* : uint64_t, uint1_t *) in
+ expr_let x505 := Z.add_with_get_carry(2^64, x504₂, 0, x501₁) (* : uint64_t, uint1_t *) in
+ expr_let x506 := Z.add_with_get_carry(2^64, 0, 0, x502₁) (* : uint64_t, uint1_t *) in
+ expr_let x507 := Z.add_with_get_carry(2^64, x506₂, 0, x503₁) (* : uint1_t, uint1_t *) in
+ expr_let x508 := Z.add_with_get_carry(2^64, x507₂, 0, x504₁) (* : uint64_t, uint1_t *) in
+ expr_let x509 := Z.add_with_get_carry(2^64, x508₂, 0, x505₁) (* : uint64_t, uint1_t *) in
+ expr_let x510 := Z.add_with_get_carry(2^64, 0, 0, x506₁) (* : uint64_t, uint1_t *) in
+ expr_let x511 := Z.add_with_get_carry(2^64, x510₂, 0, x507₁) (* : uint1_t, uint1_t *) in
+ expr_let x512 := Z.add_with_get_carry(2^64, x511₂, 0, x508₁) (* : uint64_t, uint1_t *) in
+ expr_let x513 := Z.add_with_get_carry(2^64, x512₂, 0, x509₁) (* : uint64_t, uint1_t *) in
+ expr_let x514 := Z.add_with_get_carry(2^64, 0, 0, x510₁) (* : uint64_t, uint1_t *) in
+ expr_let x515 := Z.add_with_get_carry(2^64, x514₂, 0, x511₁) (* : uint1_t, uint1_t *) in
+ expr_let x516 := Z.add_with_get_carry(2^64, x515₂, 0, x512₁) (* : uint64_t, uint1_t *) in
+ expr_let x517 := Z.add_with_get_carry(2^64, x516₂, 0, x513₁) (* : uint64_t, uint1_t *) in
+ expr_let x518 := Z.add_with_get_carry(2^64, 0, 0, x514₁) (* : uint64_t, uint1_t *) in
+ expr_let x519 := Z.add_with_get_carry(2^64, x518₂, 0, x515₁) (* : uint1_t, uint1_t *) in
+ expr_let x520 := Z.add_with_get_carry(2^64, x519₂, 0, x516₁) (* : uint64_t, uint1_t *) in
+ expr_let x521 := Z.add_with_get_carry(2^64, x520₂, 0, x517₁) (* : uint64_t, uint1_t *) in
+ expr_let x522 := Z.add_with_get_carry(2^64, 0, 0, x518₁) (* : uint64_t, uint1_t *) in
+ expr_let x523 := Z.add_with_get_carry(2^64, x522₂, 0, x519₁) (* : uint1_t, uint1_t *) in
+ expr_let x524 := Z.add_with_get_carry(2^64, x523₂, 0, x520₁) (* : uint64_t, uint1_t *) in
+ expr_let x525 := Z.add_with_get_carry(2^64, x524₂, 0, x521₁) (* : uint64_t, uint1_t *) in
+ expr_let x526 := Z.add_with_get_carry(2^64, 0, 0, x522₁) (* : uint64_t, uint1_t *) in
+ expr_let x527 := Z.add_with_get_carry(2^64, x526₂, 0, x523₁) (* : uint1_t, uint1_t *) in
+ expr_let x528 := Z.add_with_get_carry(2^64, x527₂, 0, x524₁) (* : uint64_t, uint1_t *) in
+ expr_let x529 := Z.add_with_get_carry(2^64, x528₂, 0, x525₁) (* : uint64_t, uint1_t *) in
+ expr_let x530 := Z.add_with_get_carry(2^64, 0, 0, x526₁) (* : uint64_t, uint1_t *) in
+ expr_let x531 := Z.add_with_get_carry(2^64, x530₂, 0, x527₁) (* : uint1_t, uint1_t *) in
+ expr_let x532 := Z.add_with_get_carry(2^64, x531₂, 0, x528₁) (* : uint64_t, uint1_t *) in
+ expr_let x533 := Z.add_with_get_carry(2^64, x532₂, 0, x529₁) (* : uint64_t, uint1_t *) in
+ expr_let x534 := Z.add_with_get_carry(2^64, 0, 0, x530₁) (* : uint64_t, uint1_t *) in
+ expr_let x535 := Z.add_with_get_carry(2^64, x534₂, (x476₁ * 1), x531₁) (* : uint64_t, uint1_t *) in
+ expr_let x536 := Z.add_with_get_carry(2^64, x535₂, (x475₁ * 1), x532₁) (* : uint64_t, uint1_t *) in
+ expr_let x537 := Z.add_with_get_carry(2^64, x536₂, (x474₁ * 1), x533₁) (* : uint64_t, uint1_t *) in
+ expr_let x538 := Z.add_with_get_carry(2^64, (Z.add_with_get_carry(2^64, 0, x534₁, x468₁))₂, x535₁, x469₁) (* : uint64_t, uint1_t *) in
+ expr_let x539 := Z.add_with_get_carry(2^64, x538₂, x536₁, x470₁) (* : uint64_t, uint1_t *) in
+ expr_let x540 := Z.add_with_get_carry(2^64, x539₂, x537₁, x471₁) (* : uint64_t, uint1_t *) in
+ expr_let x541 := Z.add_with_get_carry(2^64, x540₂, (Z.add_with_get_carry(2^64, x537₂, 0, (Z.add_with_get_carry(2^64, x533₂, 0, (Z.add_with_get_carry(2^64, x529₂, 0, (Z.add_with_get_carry(2^64, x525₂, 0, (Z.add_with_get_carry(2^64, x521₂, 0, (Z.add_with_get_carry(2^64, x517₂, 0, (Z.add_with_get_carry(2^64, x513₂, 0, (Z.add_with_get_carry(2^64, x509₂, 0, (Z.add_with_get_carry(2^64, x505₂, 0, (Z.add_with_get_carry(2^64, x501₂, 0, (Z.add_with_get_carry(2^64, x497₂, 0, (Z.add_with_get_carry(2^64, x493₂, 0, (Z.add_with_get_carry(2^64, x489₂, 0, (Z.add_with_get_carry(2^64, x485₂, 0, (Z.add_with_get_carry(2^64, x481₂, 0, (x474₂ * 1)))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁))₁, x472₁) (* : uint64_t, uint1_t *) in
+ expr_let x542 := Z.add_with_get_carry(2^64, 0, -1, x538₁) (* : uint64_t, int1_t *) in
+ expr_let x543 := Z.add_with_get_carry(2^64, x542₂, -0xffffffff00000000, x539₁) (* : uint64_t, int1_t *) in
+ expr_let x544 := Z.add_with_get_carry(2^64, x543₂, -(2^64-1), x540₁) (* : uint64_t, int1_t *) in
+ expr_let x545 := Z.add_with_get_carry(2^64, x544₂, -(2^32-1), x541₁) (* : uint64_t, int1_t *) in
+ expr_let x546 := Z.add_with_get_carry(2^64, x545₂, 0, (Z.add_with_get_carry(2^64, x541₂, 0, x472₂))₁) (* : uint64_t, int1_t *) in
+ expr_let x547 := Z.zselect((-x546₂), x542₁, x538₁) (* : uint64_t *) in
+ expr_let x548 := Z.zselect((-x546₂), x543₁, x539₁) (* : uint64_t *) in
+ expr_let x549 := Z.zselect((-x546₂), x544₁, x540₁) (* : uint64_t *) in
+ expr_let x550 := Z.zselect((-x546₂), x545₁, x541₁) (* : uint64_t *) in
+ x547 :: x548 :: x549 :: x550 :: []
+)
+Error in converting fiat_p224_from_montgomery to C:
+Invalid identifier in arithmetic expression Z.add_with_get_carry