diff --git a/Ix/IxVM/Blake3.lean b/Ix/IxVM/Blake3.lean index d255bb99..3d87af75 100644 --- a/Ix/IxVM/Blake3.lean +++ b/Ix/IxVM/Blake3.lean @@ -438,19 +438,19 @@ def blake3 := ⟦ ]; -- Round 0 - let state = blake3_compress_inner_j(state); + let state = @blake3_compress_inner_j(state); -- Round 1 - let state = blake3_compress_inner_j(state); + let state = @blake3_compress_inner_j(state); -- Round 2 - let state = blake3_compress_inner_j(state); + let state = @blake3_compress_inner_j(state); -- Round 3 - let state = blake3_compress_inner_j(state); + let state = @blake3_compress_inner_j(state); -- Round 4 - let state = blake3_compress_inner_j(state); + let state = @blake3_compress_inner_j(state); -- Round 5 - let state = blake3_compress_inner_j(state); + let state = @blake3_compress_inner_j(state); -- Round 6 - let state = blake3_compress_inner_j(state); + let state = @blake3_compress_inner_j(state); let output0 = @u32_xor(state[0], state[8]); let output1 = @u32_xor(state[1], state[9]); diff --git a/Tests/Ix/IxVM.lean b/Tests/Ix/IxVM.lean index 1f430c5e..74aa97c3 100644 --- a/Tests/Ix/IxVM.lean +++ b/Tests/Ix/IxVM.lean @@ -276,77 +276,77 @@ private def nameOfString (str : String) : Lean.Name := listed constant fails the suite, so a regression cannot land quietly and an improvement has to be acknowledged by re-pinning. -/ private def kernelCheckEntries : List (String × Nat) := [ - ("HEq", 129_239_352), - ("HEq.rec", 132_223_727), - ("Eq.rec", 131_796_529), - ("Nat", 129_236_482), - ("Nat.add", 159_622_648), - ("Nat.add_comm", 268_281_415), - ("Nat.decEq", 314_555_983), - ("Nat.decLe", 652_460_137), - ("Nat.sub_le_of_le_add", 1_577_107_099), - ("Nat.shiftRight_succ", 1_172_558_269), - ("Trans.mk", 134_045_879), - ("Array.append_assoc", 7_717_816_042), - ("Vector.append", 7_895_919_380), - ("IxVMPrim.nat_add_lit", 193_045_591), - ("IxVMPrim.nat_sub_lit", 206_429_542), - ("IxVMPrim.nat_mul_lit", 185_748_803), - ("IxVMPrim.nat_mul_big", 184_484_961), - ("IxVMPrim.nat_div_lit", 1_145_177_643), - ("IxVMPrim.nat_mod_lit", 1_166_515_024), - ("IxVMPrim.nat_succ_lit", 140_893_385), - ("IxVMPrim.nat_pred_lit", 158_099_686), - ("IxVMPrim.nat_gcd_lit", 1_819_307_333), - ("IxVMPrim.nat_land_lit", 2_945_733_257), - ("IxVMPrim.nat_lor_lit", 2_947_607_339), - ("IxVMPrim.nat_xor_lit", 2_963_279_952), - ("IxVMPrim.nat_shl_lit", 208_443_817), - ("IxVMPrim.nat_shr_lit", 1_157_079_133), - ("IxVMPrim.nat_pow_big", 361_995_186), - ("IxVMPrim.nat_beq_lit", 184_481_296), - ("IxVMPrim.nat_ble_lit", 180_137_392), - ("IxVMPrim.nat_cases_big", 157_983_733), - ("IxVMPrim.nat_dec_le", 667_624_988), - ("IxVMPrim.nat_dec_lt", 676_831_686), - ("IxVMPrim.nat_dec_eq", 346_845_775), - ("IxVMPrim.str_size_lit", 2_070_772_915), - ("IxVMPrim.bv_to_nat_lit", 1_729_888_453), - ("IxVMInd.Even", 187_829_482), - ("IxVMInd.Odd", 187_832_098), - ("IxVMInd.Even.rec", 202_546_550), - ("IxVMInd.Odd.rec", 202_547_473), - ("IxVMInd.Tree", 130_412_124), - ("IxVMInd.Tree.rec", 137_998_975), - ("IxVMInd.DedupM", 132_977_133), - ("IxVMInd.DedupM.rec", 143_220_708), - ("IxVMInd.DepthM", 131_760_815), - ("IxVMInd.DepthM.rec", 140_372_714), - ("String.Internal.append", 2_047_628_926), - ("_private.Init.Prelude.0.Lean.extractMainModule._unsafe_rec", 3_025_111_266), - ("Lean.Syntax.rec", 2_092_588_961), - ("IxVMInd.AuxTie", 280_526_725), - ("IxVMInd.AuxTie.rec", 313_017_899), - ("IxVMInd.HiddenIdx", 129_716_432), - ("IxVMInd.HiddenIdx.rec", 131_861_631), - ("IxVMInd.thmMajorUse", 441_019_720), - ("IxVMInd.partialKRec", 146_209_750), - ("IxVMInd.deepRebase", 195_377_539), - ("String.Slice.Pattern.Model.NoPrefixForwardPatternModel.rec", 2_880_537_174), - ("Lean.Widget.TaggedText.rec", 2_068_700_986), - ("Lean.Doc.Part.rec", 2_103_559_929), - ("Lean.Doc.Block.rec", 2_240_484_783), - ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedup1.A", 131_437_903), - ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedup1.A.rec", 133_877_688), - ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedup1.A.rec_1", 133_270_605), - ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedup1.A.rec_2", 133_270_605), - ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedup2.A.rec_1", 133_270_605), - ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedupMixed.M", 131_636_225), - ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedupMixed.M.rec", 140_194_821), - ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedupMixed.M.rec_1", 140_194_035), - ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedupMixed.M.rec_2", 133_270_605), - ("strOfListFoldSize", 2_311_060_373), - ("strOfListFoldSizeAscii", 2_311_728_414), + ("HEq", 128_989_357), + ("HEq.rec", 131_561_083), + ("Eq.rec", 131_133_885), + ("Nat", 128_986_487), + ("Nat.add", 155_034_889), + ("Nat.add_comm", 249_567_602), + ("Nat.decEq", 293_462_213), + ("Nat.decLe", 592_466_477), + ("Nat.sub_le_of_le_add", 1_420_092_650), + ("Nat.shiftRight_succ", 1_056_381_915), + ("Trans.mk", 133_383_235), + ("Array.append_assoc", 7_082_592_486), + ("Vector.append", 7_238_659_461), + ("IxVMPrim.nat_add_lit", 182_866_115), + ("IxVMPrim.nat_sub_lit", 193_836_968), + ("IxVMPrim.nat_mul_lit", 176_409_944), + ("IxVMPrim.nat_mul_big", 175_424_887), + ("IxVMPrim.nat_div_lit", 1_031_384_671), + ("IxVMPrim.nat_mod_lit", 1_049_827_483), + ("IxVMPrim.nat_succ_lit", 138_225_983), + ("IxVMPrim.nat_pred_lit", 152_319_922), + ("IxVMPrim.nat_gcd_lit", 1_632_335_038), + ("IxVMPrim.nat_land_lit", 2_626_957_196), + ("IxVMPrim.nat_lor_lit", 2_628_465_573), + ("IxVMPrim.nat_xor_lit", 2_641_211_526), + ("IxVMPrim.nat_shl_lit", 195_277_378), + ("IxVMPrim.nat_shr_lit", 1_041_073_139), + ("IxVMPrim.nat_pow_big", 342_540_157), + ("IxVMPrim.nat_beq_lit", 175_560_336), + ("IxVMPrim.nat_ble_lit", 171_909_126), + ("IxVMPrim.nat_cases_big", 152_470_974), + ("IxVMPrim.nat_dec_le", 605_356_733), + ("IxVMPrim.nat_dec_lt", 613_097_858), + ("IxVMPrim.nat_dec_eq", 320_927_785), + ("IxVMPrim.str_size_lit", 1_841_903_368), + ("IxVMPrim.bv_to_nat_lit", 1_550_132_155), + ("IxVMInd.Even", 178_071_097), + ("IxVMInd.Odd", 178_073_712), + ("IxVMInd.Even.rec", 190_810_606), + ("IxVMInd.Odd.rec", 190_811_528), + ("IxVMInd.Tree", 129_961_307), + ("IxVMInd.Tree.rec", 136_307_468), + ("IxVMInd.DedupM", 131_869_344), + ("IxVMInd.DedupM.rec", 140_553_306), + ("IxVMInd.DepthM", 130_989_222), + ("IxVMInd.DepthM.rec", 138_320_382), + ("String.Internal.append", 1_822_332_277), + ("_private.Init.Prelude.0.Lean.extractMainModule._unsafe_rec", 2_687_465_087), + ("Lean.Syntax.rec", 1_860_500_501), + ("IxVMInd.AuxTie", 253_847_985), + ("IxVMInd.AuxTie.rec", 281_739_564), + ("IxVMInd.HiddenIdx", 129_367_715), + ("IxVMInd.HiddenIdx.rec", 131_198_988), + ("IxVMInd.thmMajorUse", 404_619_280), + ("IxVMInd.partialKRec", 143_040_056), + ("IxVMInd.deepRebase", 184_916_498), + ("String.Slice.Pattern.Model.NoPrefixForwardPatternModel.rec", 2_576_912_421), + ("Lean.Widget.TaggedText.rec", 1_841_439_725), + ("Lean.Doc.Part.rec", 1_872_008_170), + ("Lean.Doc.Block.rec", 1_995_130_959), + ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedup1.A", 130_666_310), + ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedup1.A.rec", 132_655_226), + ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedup1.A.rec_1", 132_388_386), + ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedup1.A.rec_2", 132_388_386), + ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedup2.A.rec_1", 132_388_386), + ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedupMixed.M", 130_864_632), + ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedupMixed.M.rec", 138_020_753), + ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedupMixed.M.rec_1", 138_019_966), + ("_private.Tests.Ix.Compile.Mutual.0.Tests.Ix.Compile.Mutual.AuxDedupMixed.M.rec_2", 132_388_386), + ("strOfListFoldSize", 2_048_604_259), + ("strOfListFoldSizeAscii", 2_049_091_860), ] /-- Variant of `kernelChecks`, pinned to the baseline diff --git a/Tests/Main.lean b/Tests/Main.lean index 59203355..979ca129 100644 --- a/Tests/Main.lean +++ b/Tests/Main.lean @@ -223,8 +223,8 @@ def ignoredRunners (env : Lean.Environment) : List (String × IO UInt32) := [ let actual := (Aiur.computeStats v2Env.compiled qc v2Env.shapes).totalFftCost.round.toUInt64.toNat pure (LSpec.test - s!"Shard pipeline FFT matches: expected 6079191308, got {actual}" - (actual = 6_079_191_308)) + s!"Shard pipeline FFT matches: expected 5205199041, got {actual}" + (actual = 5_205_199_041)) LSpec.lspecIO (.ofList [("ixvm", [fullSeq, aiurSeq, arenaSeq, exploitSeq, paritySeq, shardSeq])]) []), diff --git a/crates/ixvm-codegen/src/aiur_ixvm.rs b/crates/ixvm-codegen/src/aiur_ixvm.rs index afb13352..9021d9b3 100644 --- a/crates/ixvm-codegen/src/aiur_ixvm.rs +++ b/crates/ixvm-codegen/src/aiur_ixvm.rs @@ -6532,942 +6532,5863 @@ fn aiur_fn_29( let __v_125: G = G::from_u64(0); let __v_126: G = G::from_u64(0); let __v_127: G = G::from_u64(0); - let __r_arr: [G; OUT_28] = { let __args: [G; IN_28] = [__v_0, __v_1, __v_2, __v_3, __v_4, __v_5, __v_6, __v_7, __v_8, __v_9, __v_10, __v_11, __v_12, __v_13, __v_14, __v_15, __v_16, __v_17, __v_18, __v_19, __v_20, __v_21, __v_22, __v_23, __v_24, __v_25, __v_26, __v_27, __v_28, __v_29, __v_30, __v_31, __v_106, __v_107, __v_108, __v_109, __v_110, __v_111, __v_112, __v_113, __v_114, __v_115, __v_116, __v_117, __v_118, __v_119, __v_120, __v_121, __v_96, __v_97, __v_98, __v_99, __v_100, __v_101, __v_102, __v_103, __v_104, __v_122, __v_123, __v_124, __v_105, __v_125, __v_126, __v_127, __v_32, __v_33, __v_34, __v_35, __v_36, __v_37, __v_38, __v_39, __v_40, __v_41, __v_42, __v_43, __v_44, __v_45, __v_46, __v_47, __v_48, __v_49, __v_50, __v_51, __v_52, __v_53, __v_54, __v_55, __v_56, __v_57, __v_58, __v_59, __v_60, __v_61, __v_62, __v_63, __v_64, __v_65, __v_66, __v_67, __v_68, __v_69, __v_70, __v_71, __v_72, __v_73, __v_74, __v_75, __v_76, __v_77, __v_78, __v_79, __v_80, __v_81, __v_82, __v_83, __v_84, __v_85, __v_86, __v_87, __v_88, __v_89, __v_90, __v_91, __v_92, __v_93, __v_94, __v_95]; let __cu = unconstrained; if let Some(result) = record.function_queries[28].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_28] = unsafe { *(result.output.as_ptr() as *const [G; OUT_28]) }; __ret } else { aiur_fn_28(__args, record, io_buffer, __cu)? } }; - let __v_128: G = __r_arr[0]; - let __v_129: G = __r_arr[1]; - let __v_130: G = __r_arr[2]; - let __v_131: G = __r_arr[3]; - let __v_132: G = __r_arr[4]; - let __v_133: G = __r_arr[5]; - let __v_134: G = __r_arr[6]; - let __v_135: G = __r_arr[7]; - let __v_136: G = __r_arr[8]; - let __v_137: G = __r_arr[9]; - let __v_138: G = __r_arr[10]; - let __v_139: G = __r_arr[11]; - let __v_140: G = __r_arr[12]; - let __v_141: G = __r_arr[13]; - let __v_142: G = __r_arr[14]; - let __v_143: G = __r_arr[15]; - let __v_144: G = __r_arr[16]; - let __v_145: G = __r_arr[17]; - let __v_146: G = __r_arr[18]; - let __v_147: G = __r_arr[19]; - let __v_148: G = __r_arr[20]; - let __v_149: G = __r_arr[21]; - let __v_150: G = __r_arr[22]; - let __v_151: G = __r_arr[23]; - let __v_152: G = __r_arr[24]; - let __v_153: G = __r_arr[25]; - let __v_154: G = __r_arr[26]; - let __v_155: G = __r_arr[27]; - let __v_156: G = __r_arr[28]; - let __v_157: G = __r_arr[29]; - let __v_158: G = __r_arr[30]; - let __v_159: G = __r_arr[31]; - let __v_160: G = __r_arr[32]; - let __v_161: G = __r_arr[33]; - let __v_162: G = __r_arr[34]; - let __v_163: G = __r_arr[35]; - let __v_164: G = __r_arr[36]; - let __v_165: G = __r_arr[37]; - let __v_166: G = __r_arr[38]; - let __v_167: G = __r_arr[39]; - let __v_168: G = __r_arr[40]; - let __v_169: G = __r_arr[41]; - let __v_170: G = __r_arr[42]; - let __v_171: G = __r_arr[43]; - let __v_172: G = __r_arr[44]; - let __v_173: G = __r_arr[45]; - let __v_174: G = __r_arr[46]; - let __v_175: G = __r_arr[47]; - let __v_176: G = __r_arr[48]; - let __v_177: G = __r_arr[49]; - let __v_178: G = __r_arr[50]; - let __v_179: G = __r_arr[51]; - let __v_180: G = __r_arr[52]; - let __v_181: G = __r_arr[53]; - let __v_182: G = __r_arr[54]; - let __v_183: G = __r_arr[55]; - let __v_184: G = __r_arr[56]; - let __v_185: G = __r_arr[57]; - let __v_186: G = __r_arr[58]; - let __v_187: G = __r_arr[59]; - let __v_188: G = __r_arr[60]; - let __v_189: G = __r_arr[61]; - let __v_190: G = __r_arr[62]; - let __v_191: G = __r_arr[63]; - let __v_192: G = __r_arr[64]; - let __v_193: G = __r_arr[65]; - let __v_194: G = __r_arr[66]; - let __v_195: G = __r_arr[67]; - let __v_196: G = __r_arr[68]; - let __v_197: G = __r_arr[69]; - let __v_198: G = __r_arr[70]; - let __v_199: G = __r_arr[71]; - let __v_200: G = __r_arr[72]; - let __v_201: G = __r_arr[73]; - let __v_202: G = __r_arr[74]; - let __v_203: G = __r_arr[75]; - let __v_204: G = __r_arr[76]; - let __v_205: G = __r_arr[77]; - let __v_206: G = __r_arr[78]; - let __v_207: G = __r_arr[79]; - let __v_208: G = __r_arr[80]; - let __v_209: G = __r_arr[81]; - let __v_210: G = __r_arr[82]; - let __v_211: G = __r_arr[83]; - let __v_212: G = __r_arr[84]; - let __v_213: G = __r_arr[85]; - let __v_214: G = __r_arr[86]; - let __v_215: G = __r_arr[87]; - let __v_216: G = __r_arr[88]; - let __v_217: G = __r_arr[89]; - let __v_218: G = __r_arr[90]; - let __v_219: G = __r_arr[91]; - let __v_220: G = __r_arr[92]; - let __v_221: G = __r_arr[93]; - let __v_222: G = __r_arr[94]; - let __v_223: G = __r_arr[95]; - let __v_224: G = __r_arr[96]; - let __v_225: G = __r_arr[97]; - let __v_226: G = __r_arr[98]; - let __v_227: G = __r_arr[99]; - let __v_228: G = __r_arr[100]; - let __v_229: G = __r_arr[101]; - let __v_230: G = __r_arr[102]; - let __v_231: G = __r_arr[103]; - let __v_232: G = __r_arr[104]; - let __v_233: G = __r_arr[105]; - let __v_234: G = __r_arr[106]; - let __v_235: G = __r_arr[107]; - let __v_236: G = __r_arr[108]; - let __v_237: G = __r_arr[109]; - let __v_238: G = __r_arr[110]; - let __v_239: G = __r_arr[111]; - let __v_240: G = __r_arr[112]; - let __v_241: G = __r_arr[113]; - let __v_242: G = __r_arr[114]; - let __v_243: G = __r_arr[115]; - let __v_244: G = __r_arr[116]; - let __v_245: G = __r_arr[117]; - let __v_246: G = __r_arr[118]; - let __v_247: G = __r_arr[119]; - let __v_248: G = __r_arr[120]; - let __v_249: G = __r_arr[121]; - let __v_250: G = __r_arr[122]; - let __v_251: G = __r_arr[123]; - let __v_252: G = __r_arr[124]; - let __v_253: G = __r_arr[125]; - let __v_254: G = __r_arr[126]; - let __v_255: G = __r_arr[127]; - let __r_arr: [G; OUT_28] = { let __args: [G; IN_28] = [__v_128, __v_129, __v_130, __v_131, __v_132, __v_133, __v_134, __v_135, __v_136, __v_137, __v_138, __v_139, __v_140, __v_141, __v_142, __v_143, __v_144, __v_145, __v_146, __v_147, __v_148, __v_149, __v_150, __v_151, __v_152, __v_153, __v_154, __v_155, __v_156, __v_157, __v_158, __v_159, __v_160, __v_161, __v_162, __v_163, __v_164, __v_165, __v_166, __v_167, __v_168, __v_169, __v_170, __v_171, __v_172, __v_173, __v_174, __v_175, __v_176, __v_177, __v_178, __v_179, __v_180, __v_181, __v_182, __v_183, __v_184, __v_185, __v_186, __v_187, __v_188, __v_189, __v_190, __v_191, __v_192, __v_193, __v_194, __v_195, __v_196, __v_197, __v_198, __v_199, __v_200, __v_201, __v_202, __v_203, __v_204, __v_205, __v_206, __v_207, __v_208, __v_209, __v_210, __v_211, __v_212, __v_213, __v_214, __v_215, __v_216, __v_217, __v_218, __v_219, __v_220, __v_221, __v_222, __v_223, __v_224, __v_225, __v_226, __v_227, __v_228, __v_229, __v_230, __v_231, __v_232, __v_233, __v_234, __v_235, __v_236, __v_237, __v_238, __v_239, __v_240, __v_241, __v_242, __v_243, __v_244, __v_245, __v_246, __v_247, __v_248, __v_249, __v_250, __v_251, __v_252, __v_253, __v_254, __v_255]; let __cu = unconstrained; if let Some(result) = record.function_queries[28].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_28] = unsafe { *(result.output.as_ptr() as *const [G; OUT_28]) }; __ret } else { aiur_fn_28(__args, record, io_buffer, __cu)? } }; - let __v_256: G = __r_arr[0]; - let __v_257: G = __r_arr[1]; - let __v_258: G = __r_arr[2]; - let __v_259: G = __r_arr[3]; - let __v_260: G = __r_arr[4]; - let __v_261: G = __r_arr[5]; - let __v_262: G = __r_arr[6]; - let __v_263: G = __r_arr[7]; - let __v_264: G = __r_arr[8]; - let __v_265: G = __r_arr[9]; - let __v_266: G = __r_arr[10]; - let __v_267: G = __r_arr[11]; - let __v_268: G = __r_arr[12]; - let __v_269: G = __r_arr[13]; - let __v_270: G = __r_arr[14]; - let __v_271: G = __r_arr[15]; - let __v_272: G = __r_arr[16]; - let __v_273: G = __r_arr[17]; - let __v_274: G = __r_arr[18]; - let __v_275: G = __r_arr[19]; - let __v_276: G = __r_arr[20]; - let __v_277: G = __r_arr[21]; - let __v_278: G = __r_arr[22]; - let __v_279: G = __r_arr[23]; - let __v_280: G = __r_arr[24]; - let __v_281: G = __r_arr[25]; - let __v_282: G = __r_arr[26]; - let __v_283: G = __r_arr[27]; - let __v_284: G = __r_arr[28]; - let __v_285: G = __r_arr[29]; - let __v_286: G = __r_arr[30]; - let __v_287: G = __r_arr[31]; - let __v_288: G = __r_arr[32]; - let __v_289: G = __r_arr[33]; - let __v_290: G = __r_arr[34]; - let __v_291: G = __r_arr[35]; - let __v_292: G = __r_arr[36]; - let __v_293: G = __r_arr[37]; - let __v_294: G = __r_arr[38]; - let __v_295: G = __r_arr[39]; - let __v_296: G = __r_arr[40]; - let __v_297: G = __r_arr[41]; - let __v_298: G = __r_arr[42]; - let __v_299: G = __r_arr[43]; - let __v_300: G = __r_arr[44]; - let __v_301: G = __r_arr[45]; - let __v_302: G = __r_arr[46]; - let __v_303: G = __r_arr[47]; - let __v_304: G = __r_arr[48]; - let __v_305: G = __r_arr[49]; - let __v_306: G = __r_arr[50]; - let __v_307: G = __r_arr[51]; - let __v_308: G = __r_arr[52]; - let __v_309: G = __r_arr[53]; - let __v_310: G = __r_arr[54]; - let __v_311: G = __r_arr[55]; - let __v_312: G = __r_arr[56]; - let __v_313: G = __r_arr[57]; - let __v_314: G = __r_arr[58]; - let __v_315: G = __r_arr[59]; - let __v_316: G = __r_arr[60]; - let __v_317: G = __r_arr[61]; - let __v_318: G = __r_arr[62]; - let __v_319: G = __r_arr[63]; - let __v_320: G = __r_arr[64]; - let __v_321: G = __r_arr[65]; - let __v_322: G = __r_arr[66]; - let __v_323: G = __r_arr[67]; - let __v_324: G = __r_arr[68]; - let __v_325: G = __r_arr[69]; - let __v_326: G = __r_arr[70]; - let __v_327: G = __r_arr[71]; - let __v_328: G = __r_arr[72]; - let __v_329: G = __r_arr[73]; - let __v_330: G = __r_arr[74]; - let __v_331: G = __r_arr[75]; - let __v_332: G = __r_arr[76]; - let __v_333: G = __r_arr[77]; - let __v_334: G = __r_arr[78]; - let __v_335: G = __r_arr[79]; - let __v_336: G = __r_arr[80]; - let __v_337: G = __r_arr[81]; - let __v_338: G = __r_arr[82]; - let __v_339: G = __r_arr[83]; - let __v_340: G = __r_arr[84]; - let __v_341: G = __r_arr[85]; - let __v_342: G = __r_arr[86]; - let __v_343: G = __r_arr[87]; - let __v_344: G = __r_arr[88]; - let __v_345: G = __r_arr[89]; - let __v_346: G = __r_arr[90]; - let __v_347: G = __r_arr[91]; - let __v_348: G = __r_arr[92]; - let __v_349: G = __r_arr[93]; - let __v_350: G = __r_arr[94]; - let __v_351: G = __r_arr[95]; - let __v_352: G = __r_arr[96]; - let __v_353: G = __r_arr[97]; - let __v_354: G = __r_arr[98]; - let __v_355: G = __r_arr[99]; - let __v_356: G = __r_arr[100]; - let __v_357: G = __r_arr[101]; - let __v_358: G = __r_arr[102]; - let __v_359: G = __r_arr[103]; - let __v_360: G = __r_arr[104]; - let __v_361: G = __r_arr[105]; - let __v_362: G = __r_arr[106]; - let __v_363: G = __r_arr[107]; - let __v_364: G = __r_arr[108]; - let __v_365: G = __r_arr[109]; - let __v_366: G = __r_arr[110]; - let __v_367: G = __r_arr[111]; - let __v_368: G = __r_arr[112]; - let __v_369: G = __r_arr[113]; - let __v_370: G = __r_arr[114]; - let __v_371: G = __r_arr[115]; - let __v_372: G = __r_arr[116]; - let __v_373: G = __r_arr[117]; - let __v_374: G = __r_arr[118]; - let __v_375: G = __r_arr[119]; - let __v_376: G = __r_arr[120]; - let __v_377: G = __r_arr[121]; - let __v_378: G = __r_arr[122]; - let __v_379: G = __r_arr[123]; - let __v_380: G = __r_arr[124]; - let __v_381: G = __r_arr[125]; - let __v_382: G = __r_arr[126]; - let __v_383: G = __r_arr[127]; - let __r_arr: [G; OUT_28] = { let __args: [G; IN_28] = [__v_256, __v_257, __v_258, __v_259, __v_260, __v_261, __v_262, __v_263, __v_264, __v_265, __v_266, __v_267, __v_268, __v_269, __v_270, __v_271, __v_272, __v_273, __v_274, __v_275, __v_276, __v_277, __v_278, __v_279, __v_280, __v_281, __v_282, __v_283, __v_284, __v_285, __v_286, __v_287, __v_288, __v_289, __v_290, __v_291, __v_292, __v_293, __v_294, __v_295, __v_296, __v_297, __v_298, __v_299, __v_300, __v_301, __v_302, __v_303, __v_304, __v_305, __v_306, __v_307, __v_308, __v_309, __v_310, __v_311, __v_312, __v_313, __v_314, __v_315, __v_316, __v_317, __v_318, __v_319, __v_320, __v_321, __v_322, __v_323, __v_324, __v_325, __v_326, __v_327, __v_328, __v_329, __v_330, __v_331, __v_332, __v_333, __v_334, __v_335, __v_336, __v_337, __v_338, __v_339, __v_340, __v_341, __v_342, __v_343, __v_344, __v_345, __v_346, __v_347, __v_348, __v_349, __v_350, __v_351, __v_352, __v_353, __v_354, __v_355, __v_356, __v_357, __v_358, __v_359, __v_360, __v_361, __v_362, __v_363, __v_364, __v_365, __v_366, __v_367, __v_368, __v_369, __v_370, __v_371, __v_372, __v_373, __v_374, __v_375, __v_376, __v_377, __v_378, __v_379, __v_380, __v_381, __v_382, __v_383]; let __cu = unconstrained; if let Some(result) = record.function_queries[28].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_28] = unsafe { *(result.output.as_ptr() as *const [G; OUT_28]) }; __ret } else { aiur_fn_28(__args, record, io_buffer, __cu)? } }; - let __v_384: G = __r_arr[0]; - let __v_385: G = __r_arr[1]; - let __v_386: G = __r_arr[2]; - let __v_387: G = __r_arr[3]; - let __v_388: G = __r_arr[4]; - let __v_389: G = __r_arr[5]; - let __v_390: G = __r_arr[6]; - let __v_391: G = __r_arr[7]; - let __v_392: G = __r_arr[8]; - let __v_393: G = __r_arr[9]; - let __v_394: G = __r_arr[10]; - let __v_395: G = __r_arr[11]; - let __v_396: G = __r_arr[12]; - let __v_397: G = __r_arr[13]; - let __v_398: G = __r_arr[14]; - let __v_399: G = __r_arr[15]; - let __v_400: G = __r_arr[16]; - let __v_401: G = __r_arr[17]; - let __v_402: G = __r_arr[18]; - let __v_403: G = __r_arr[19]; - let __v_404: G = __r_arr[20]; - let __v_405: G = __r_arr[21]; - let __v_406: G = __r_arr[22]; - let __v_407: G = __r_arr[23]; - let __v_408: G = __r_arr[24]; - let __v_409: G = __r_arr[25]; - let __v_410: G = __r_arr[26]; - let __v_411: G = __r_arr[27]; - let __v_412: G = __r_arr[28]; - let __v_413: G = __r_arr[29]; - let __v_414: G = __r_arr[30]; - let __v_415: G = __r_arr[31]; - let __v_416: G = __r_arr[32]; - let __v_417: G = __r_arr[33]; - let __v_418: G = __r_arr[34]; - let __v_419: G = __r_arr[35]; - let __v_420: G = __r_arr[36]; - let __v_421: G = __r_arr[37]; - let __v_422: G = __r_arr[38]; - let __v_423: G = __r_arr[39]; - let __v_424: G = __r_arr[40]; - let __v_425: G = __r_arr[41]; - let __v_426: G = __r_arr[42]; - let __v_427: G = __r_arr[43]; - let __v_428: G = __r_arr[44]; - let __v_429: G = __r_arr[45]; - let __v_430: G = __r_arr[46]; - let __v_431: G = __r_arr[47]; - let __v_432: G = __r_arr[48]; - let __v_433: G = __r_arr[49]; - let __v_434: G = __r_arr[50]; - let __v_435: G = __r_arr[51]; - let __v_436: G = __r_arr[52]; - let __v_437: G = __r_arr[53]; - let __v_438: G = __r_arr[54]; - let __v_439: G = __r_arr[55]; - let __v_440: G = __r_arr[56]; - let __v_441: G = __r_arr[57]; - let __v_442: G = __r_arr[58]; - let __v_443: G = __r_arr[59]; - let __v_444: G = __r_arr[60]; - let __v_445: G = __r_arr[61]; - let __v_446: G = __r_arr[62]; - let __v_447: G = __r_arr[63]; - let __v_448: G = __r_arr[64]; - let __v_449: G = __r_arr[65]; - let __v_450: G = __r_arr[66]; - let __v_451: G = __r_arr[67]; - let __v_452: G = __r_arr[68]; - let __v_453: G = __r_arr[69]; - let __v_454: G = __r_arr[70]; - let __v_455: G = __r_arr[71]; - let __v_456: G = __r_arr[72]; - let __v_457: G = __r_arr[73]; - let __v_458: G = __r_arr[74]; - let __v_459: G = __r_arr[75]; - let __v_460: G = __r_arr[76]; - let __v_461: G = __r_arr[77]; - let __v_462: G = __r_arr[78]; - let __v_463: G = __r_arr[79]; - let __v_464: G = __r_arr[80]; - let __v_465: G = __r_arr[81]; - let __v_466: G = __r_arr[82]; - let __v_467: G = __r_arr[83]; - let __v_468: G = __r_arr[84]; - let __v_469: G = __r_arr[85]; - let __v_470: G = __r_arr[86]; - let __v_471: G = __r_arr[87]; - let __v_472: G = __r_arr[88]; - let __v_473: G = __r_arr[89]; - let __v_474: G = __r_arr[90]; - let __v_475: G = __r_arr[91]; - let __v_476: G = __r_arr[92]; - let __v_477: G = __r_arr[93]; - let __v_478: G = __r_arr[94]; - let __v_479: G = __r_arr[95]; - let __v_480: G = __r_arr[96]; - let __v_481: G = __r_arr[97]; - let __v_482: G = __r_arr[98]; - let __v_483: G = __r_arr[99]; - let __v_484: G = __r_arr[100]; - let __v_485: G = __r_arr[101]; - let __v_486: G = __r_arr[102]; - let __v_487: G = __r_arr[103]; - let __v_488: G = __r_arr[104]; - let __v_489: G = __r_arr[105]; - let __v_490: G = __r_arr[106]; - let __v_491: G = __r_arr[107]; - let __v_492: G = __r_arr[108]; - let __v_493: G = __r_arr[109]; - let __v_494: G = __r_arr[110]; - let __v_495: G = __r_arr[111]; - let __v_496: G = __r_arr[112]; - let __v_497: G = __r_arr[113]; - let __v_498: G = __r_arr[114]; - let __v_499: G = __r_arr[115]; - let __v_500: G = __r_arr[116]; - let __v_501: G = __r_arr[117]; - let __v_502: G = __r_arr[118]; - let __v_503: G = __r_arr[119]; - let __v_504: G = __r_arr[120]; - let __v_505: G = __r_arr[121]; - let __v_506: G = __r_arr[122]; - let __v_507: G = __r_arr[123]; - let __v_508: G = __r_arr[124]; - let __v_509: G = __r_arr[125]; - let __v_510: G = __r_arr[126]; - let __v_511: G = __r_arr[127]; - let __r_arr: [G; OUT_28] = { let __args: [G; IN_28] = [__v_384, __v_385, __v_386, __v_387, __v_388, __v_389, __v_390, __v_391, __v_392, __v_393, __v_394, __v_395, __v_396, __v_397, __v_398, __v_399, __v_400, __v_401, __v_402, __v_403, __v_404, __v_405, __v_406, __v_407, __v_408, __v_409, __v_410, __v_411, __v_412, __v_413, __v_414, __v_415, __v_416, __v_417, __v_418, __v_419, __v_420, __v_421, __v_422, __v_423, __v_424, __v_425, __v_426, __v_427, __v_428, __v_429, __v_430, __v_431, __v_432, __v_433, __v_434, __v_435, __v_436, __v_437, __v_438, __v_439, __v_440, __v_441, __v_442, __v_443, __v_444, __v_445, __v_446, __v_447, __v_448, __v_449, __v_450, __v_451, __v_452, __v_453, __v_454, __v_455, __v_456, __v_457, __v_458, __v_459, __v_460, __v_461, __v_462, __v_463, __v_464, __v_465, __v_466, __v_467, __v_468, __v_469, __v_470, __v_471, __v_472, __v_473, __v_474, __v_475, __v_476, __v_477, __v_478, __v_479, __v_480, __v_481, __v_482, __v_483, __v_484, __v_485, __v_486, __v_487, __v_488, __v_489, __v_490, __v_491, __v_492, __v_493, __v_494, __v_495, __v_496, __v_497, __v_498, __v_499, __v_500, __v_501, __v_502, __v_503, __v_504, __v_505, __v_506, __v_507, __v_508, __v_509, __v_510, __v_511]; let __cu = unconstrained; if let Some(result) = record.function_queries[28].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_28] = unsafe { *(result.output.as_ptr() as *const [G; OUT_28]) }; __ret } else { aiur_fn_28(__args, record, io_buffer, __cu)? } }; - let __v_512: G = __r_arr[0]; - let __v_513: G = __r_arr[1]; - let __v_514: G = __r_arr[2]; - let __v_515: G = __r_arr[3]; - let __v_516: G = __r_arr[4]; - let __v_517: G = __r_arr[5]; - let __v_518: G = __r_arr[6]; - let __v_519: G = __r_arr[7]; - let __v_520: G = __r_arr[8]; - let __v_521: G = __r_arr[9]; - let __v_522: G = __r_arr[10]; - let __v_523: G = __r_arr[11]; - let __v_524: G = __r_arr[12]; - let __v_525: G = __r_arr[13]; - let __v_526: G = __r_arr[14]; - let __v_527: G = __r_arr[15]; - let __v_528: G = __r_arr[16]; - let __v_529: G = __r_arr[17]; - let __v_530: G = __r_arr[18]; - let __v_531: G = __r_arr[19]; - let __v_532: G = __r_arr[20]; - let __v_533: G = __r_arr[21]; - let __v_534: G = __r_arr[22]; - let __v_535: G = __r_arr[23]; - let __v_536: G = __r_arr[24]; - let __v_537: G = __r_arr[25]; - let __v_538: G = __r_arr[26]; - let __v_539: G = __r_arr[27]; - let __v_540: G = __r_arr[28]; - let __v_541: G = __r_arr[29]; - let __v_542: G = __r_arr[30]; - let __v_543: G = __r_arr[31]; - let __v_544: G = __r_arr[32]; - let __v_545: G = __r_arr[33]; - let __v_546: G = __r_arr[34]; - let __v_547: G = __r_arr[35]; - let __v_548: G = __r_arr[36]; - let __v_549: G = __r_arr[37]; - let __v_550: G = __r_arr[38]; - let __v_551: G = __r_arr[39]; - let __v_552: G = __r_arr[40]; - let __v_553: G = __r_arr[41]; - let __v_554: G = __r_arr[42]; - let __v_555: G = __r_arr[43]; - let __v_556: G = __r_arr[44]; - let __v_557: G = __r_arr[45]; - let __v_558: G = __r_arr[46]; - let __v_559: G = __r_arr[47]; - let __v_560: G = __r_arr[48]; - let __v_561: G = __r_arr[49]; - let __v_562: G = __r_arr[50]; - let __v_563: G = __r_arr[51]; - let __v_564: G = __r_arr[52]; - let __v_565: G = __r_arr[53]; - let __v_566: G = __r_arr[54]; - let __v_567: G = __r_arr[55]; - let __v_568: G = __r_arr[56]; - let __v_569: G = __r_arr[57]; - let __v_570: G = __r_arr[58]; - let __v_571: G = __r_arr[59]; - let __v_572: G = __r_arr[60]; - let __v_573: G = __r_arr[61]; - let __v_574: G = __r_arr[62]; - let __v_575: G = __r_arr[63]; - let __v_576: G = __r_arr[64]; - let __v_577: G = __r_arr[65]; - let __v_578: G = __r_arr[66]; - let __v_579: G = __r_arr[67]; - let __v_580: G = __r_arr[68]; - let __v_581: G = __r_arr[69]; - let __v_582: G = __r_arr[70]; - let __v_583: G = __r_arr[71]; - let __v_584: G = __r_arr[72]; - let __v_585: G = __r_arr[73]; - let __v_586: G = __r_arr[74]; - let __v_587: G = __r_arr[75]; - let __v_588: G = __r_arr[76]; - let __v_589: G = __r_arr[77]; - let __v_590: G = __r_arr[78]; - let __v_591: G = __r_arr[79]; - let __v_592: G = __r_arr[80]; - let __v_593: G = __r_arr[81]; - let __v_594: G = __r_arr[82]; - let __v_595: G = __r_arr[83]; - let __v_596: G = __r_arr[84]; - let __v_597: G = __r_arr[85]; - let __v_598: G = __r_arr[86]; - let __v_599: G = __r_arr[87]; - let __v_600: G = __r_arr[88]; - let __v_601: G = __r_arr[89]; - let __v_602: G = __r_arr[90]; - let __v_603: G = __r_arr[91]; - let __v_604: G = __r_arr[92]; - let __v_605: G = __r_arr[93]; - let __v_606: G = __r_arr[94]; - let __v_607: G = __r_arr[95]; - let __v_608: G = __r_arr[96]; - let __v_609: G = __r_arr[97]; - let __v_610: G = __r_arr[98]; - let __v_611: G = __r_arr[99]; - let __v_612: G = __r_arr[100]; - let __v_613: G = __r_arr[101]; - let __v_614: G = __r_arr[102]; - let __v_615: G = __r_arr[103]; - let __v_616: G = __r_arr[104]; - let __v_617: G = __r_arr[105]; - let __v_618: G = __r_arr[106]; - let __v_619: G = __r_arr[107]; - let __v_620: G = __r_arr[108]; - let __v_621: G = __r_arr[109]; - let __v_622: G = __r_arr[110]; - let __v_623: G = __r_arr[111]; - let __v_624: G = __r_arr[112]; - let __v_625: G = __r_arr[113]; - let __v_626: G = __r_arr[114]; - let __v_627: G = __r_arr[115]; - let __v_628: G = __r_arr[116]; - let __v_629: G = __r_arr[117]; - let __v_630: G = __r_arr[118]; - let __v_631: G = __r_arr[119]; - let __v_632: G = __r_arr[120]; - let __v_633: G = __r_arr[121]; - let __v_634: G = __r_arr[122]; - let __v_635: G = __r_arr[123]; - let __v_636: G = __r_arr[124]; - let __v_637: G = __r_arr[125]; - let __v_638: G = __r_arr[126]; - let __v_639: G = __r_arr[127]; - let __r_arr: [G; OUT_28] = { let __args: [G; IN_28] = [__v_512, __v_513, __v_514, __v_515, __v_516, __v_517, __v_518, __v_519, __v_520, __v_521, __v_522, __v_523, __v_524, __v_525, __v_526, __v_527, __v_528, __v_529, __v_530, __v_531, __v_532, __v_533, __v_534, __v_535, __v_536, __v_537, __v_538, __v_539, __v_540, __v_541, __v_542, __v_543, __v_544, __v_545, __v_546, __v_547, __v_548, __v_549, __v_550, __v_551, __v_552, __v_553, __v_554, __v_555, __v_556, __v_557, __v_558, __v_559, __v_560, __v_561, __v_562, __v_563, __v_564, __v_565, __v_566, __v_567, __v_568, __v_569, __v_570, __v_571, __v_572, __v_573, __v_574, __v_575, __v_576, __v_577, __v_578, __v_579, __v_580, __v_581, __v_582, __v_583, __v_584, __v_585, __v_586, __v_587, __v_588, __v_589, __v_590, __v_591, __v_592, __v_593, __v_594, __v_595, __v_596, __v_597, __v_598, __v_599, __v_600, __v_601, __v_602, __v_603, __v_604, __v_605, __v_606, __v_607, __v_608, __v_609, __v_610, __v_611, __v_612, __v_613, __v_614, __v_615, __v_616, __v_617, __v_618, __v_619, __v_620, __v_621, __v_622, __v_623, __v_624, __v_625, __v_626, __v_627, __v_628, __v_629, __v_630, __v_631, __v_632, __v_633, __v_634, __v_635, __v_636, __v_637, __v_638, __v_639]; let __cu = unconstrained; if let Some(result) = record.function_queries[28].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_28] = unsafe { *(result.output.as_ptr() as *const [G; OUT_28]) }; __ret } else { aiur_fn_28(__args, record, io_buffer, __cu)? } }; - let __v_640: G = __r_arr[0]; - let __v_641: G = __r_arr[1]; - let __v_642: G = __r_arr[2]; - let __v_643: G = __r_arr[3]; - let __v_644: G = __r_arr[4]; - let __v_645: G = __r_arr[5]; - let __v_646: G = __r_arr[6]; - let __v_647: G = __r_arr[7]; - let __v_648: G = __r_arr[8]; - let __v_649: G = __r_arr[9]; - let __v_650: G = __r_arr[10]; - let __v_651: G = __r_arr[11]; - let __v_652: G = __r_arr[12]; - let __v_653: G = __r_arr[13]; - let __v_654: G = __r_arr[14]; - let __v_655: G = __r_arr[15]; - let __v_656: G = __r_arr[16]; - let __v_657: G = __r_arr[17]; - let __v_658: G = __r_arr[18]; - let __v_659: G = __r_arr[19]; - let __v_660: G = __r_arr[20]; - let __v_661: G = __r_arr[21]; - let __v_662: G = __r_arr[22]; - let __v_663: G = __r_arr[23]; - let __v_664: G = __r_arr[24]; - let __v_665: G = __r_arr[25]; - let __v_666: G = __r_arr[26]; - let __v_667: G = __r_arr[27]; - let __v_668: G = __r_arr[28]; - let __v_669: G = __r_arr[29]; - let __v_670: G = __r_arr[30]; - let __v_671: G = __r_arr[31]; - let __v_672: G = __r_arr[32]; - let __v_673: G = __r_arr[33]; - let __v_674: G = __r_arr[34]; - let __v_675: G = __r_arr[35]; - let __v_676: G = __r_arr[36]; - let __v_677: G = __r_arr[37]; - let __v_678: G = __r_arr[38]; - let __v_679: G = __r_arr[39]; - let __v_680: G = __r_arr[40]; - let __v_681: G = __r_arr[41]; - let __v_682: G = __r_arr[42]; - let __v_683: G = __r_arr[43]; - let __v_684: G = __r_arr[44]; - let __v_685: G = __r_arr[45]; - let __v_686: G = __r_arr[46]; - let __v_687: G = __r_arr[47]; - let __v_688: G = __r_arr[48]; - let __v_689: G = __r_arr[49]; - let __v_690: G = __r_arr[50]; - let __v_691: G = __r_arr[51]; - let __v_692: G = __r_arr[52]; - let __v_693: G = __r_arr[53]; - let __v_694: G = __r_arr[54]; - let __v_695: G = __r_arr[55]; - let __v_696: G = __r_arr[56]; - let __v_697: G = __r_arr[57]; - let __v_698: G = __r_arr[58]; - let __v_699: G = __r_arr[59]; - let __v_700: G = __r_arr[60]; - let __v_701: G = __r_arr[61]; - let __v_702: G = __r_arr[62]; - let __v_703: G = __r_arr[63]; - let __v_704: G = __r_arr[64]; - let __v_705: G = __r_arr[65]; - let __v_706: G = __r_arr[66]; - let __v_707: G = __r_arr[67]; - let __v_708: G = __r_arr[68]; - let __v_709: G = __r_arr[69]; - let __v_710: G = __r_arr[70]; - let __v_711: G = __r_arr[71]; - let __v_712: G = __r_arr[72]; - let __v_713: G = __r_arr[73]; - let __v_714: G = __r_arr[74]; - let __v_715: G = __r_arr[75]; - let __v_716: G = __r_arr[76]; - let __v_717: G = __r_arr[77]; - let __v_718: G = __r_arr[78]; - let __v_719: G = __r_arr[79]; - let __v_720: G = __r_arr[80]; - let __v_721: G = __r_arr[81]; - let __v_722: G = __r_arr[82]; - let __v_723: G = __r_arr[83]; - let __v_724: G = __r_arr[84]; - let __v_725: G = __r_arr[85]; - let __v_726: G = __r_arr[86]; - let __v_727: G = __r_arr[87]; - let __v_728: G = __r_arr[88]; - let __v_729: G = __r_arr[89]; - let __v_730: G = __r_arr[90]; - let __v_731: G = __r_arr[91]; - let __v_732: G = __r_arr[92]; - let __v_733: G = __r_arr[93]; - let __v_734: G = __r_arr[94]; - let __v_735: G = __r_arr[95]; - let __v_736: G = __r_arr[96]; - let __v_737: G = __r_arr[97]; - let __v_738: G = __r_arr[98]; - let __v_739: G = __r_arr[99]; - let __v_740: G = __r_arr[100]; - let __v_741: G = __r_arr[101]; - let __v_742: G = __r_arr[102]; - let __v_743: G = __r_arr[103]; - let __v_744: G = __r_arr[104]; - let __v_745: G = __r_arr[105]; - let __v_746: G = __r_arr[106]; - let __v_747: G = __r_arr[107]; - let __v_748: G = __r_arr[108]; - let __v_749: G = __r_arr[109]; - let __v_750: G = __r_arr[110]; - let __v_751: G = __r_arr[111]; - let __v_752: G = __r_arr[112]; - let __v_753: G = __r_arr[113]; - let __v_754: G = __r_arr[114]; - let __v_755: G = __r_arr[115]; - let __v_756: G = __r_arr[116]; - let __v_757: G = __r_arr[117]; - let __v_758: G = __r_arr[118]; - let __v_759: G = __r_arr[119]; - let __v_760: G = __r_arr[120]; - let __v_761: G = __r_arr[121]; - let __v_762: G = __r_arr[122]; - let __v_763: G = __r_arr[123]; - let __v_764: G = __r_arr[124]; - let __v_765: G = __r_arr[125]; - let __v_766: G = __r_arr[126]; - let __v_767: G = __r_arr[127]; - let __r_arr: [G; OUT_28] = { let __args: [G; IN_28] = [__v_640, __v_641, __v_642, __v_643, __v_644, __v_645, __v_646, __v_647, __v_648, __v_649, __v_650, __v_651, __v_652, __v_653, __v_654, __v_655, __v_656, __v_657, __v_658, __v_659, __v_660, __v_661, __v_662, __v_663, __v_664, __v_665, __v_666, __v_667, __v_668, __v_669, __v_670, __v_671, __v_672, __v_673, __v_674, __v_675, __v_676, __v_677, __v_678, __v_679, __v_680, __v_681, __v_682, __v_683, __v_684, __v_685, __v_686, __v_687, __v_688, __v_689, __v_690, __v_691, __v_692, __v_693, __v_694, __v_695, __v_696, __v_697, __v_698, __v_699, __v_700, __v_701, __v_702, __v_703, __v_704, __v_705, __v_706, __v_707, __v_708, __v_709, __v_710, __v_711, __v_712, __v_713, __v_714, __v_715, __v_716, __v_717, __v_718, __v_719, __v_720, __v_721, __v_722, __v_723, __v_724, __v_725, __v_726, __v_727, __v_728, __v_729, __v_730, __v_731, __v_732, __v_733, __v_734, __v_735, __v_736, __v_737, __v_738, __v_739, __v_740, __v_741, __v_742, __v_743, __v_744, __v_745, __v_746, __v_747, __v_748, __v_749, __v_750, __v_751, __v_752, __v_753, __v_754, __v_755, __v_756, __v_757, __v_758, __v_759, __v_760, __v_761, __v_762, __v_763, __v_764, __v_765, __v_766, __v_767]; let __cu = unconstrained; if let Some(result) = record.function_queries[28].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_28] = unsafe { *(result.output.as_ptr() as *const [G; OUT_28]) }; __ret } else { aiur_fn_28(__args, record, io_buffer, __cu)? } }; - let __v_768: G = __r_arr[0]; - let __v_769: G = __r_arr[1]; - let __v_770: G = __r_arr[2]; - let __v_771: G = __r_arr[3]; - let __v_772: G = __r_arr[4]; - let __v_773: G = __r_arr[5]; - let __v_774: G = __r_arr[6]; - let __v_775: G = __r_arr[7]; - let __v_776: G = __r_arr[8]; - let __v_777: G = __r_arr[9]; - let __v_778: G = __r_arr[10]; - let __v_779: G = __r_arr[11]; - let __v_780: G = __r_arr[12]; - let __v_781: G = __r_arr[13]; - let __v_782: G = __r_arr[14]; - let __v_783: G = __r_arr[15]; - let __v_784: G = __r_arr[16]; - let __v_785: G = __r_arr[17]; - let __v_786: G = __r_arr[18]; - let __v_787: G = __r_arr[19]; - let __v_788: G = __r_arr[20]; - let __v_789: G = __r_arr[21]; - let __v_790: G = __r_arr[22]; - let __v_791: G = __r_arr[23]; - let __v_792: G = __r_arr[24]; - let __v_793: G = __r_arr[25]; - let __v_794: G = __r_arr[26]; - let __v_795: G = __r_arr[27]; - let __v_796: G = __r_arr[28]; - let __v_797: G = __r_arr[29]; - let __v_798: G = __r_arr[30]; - let __v_799: G = __r_arr[31]; - let __v_800: G = __r_arr[32]; - let __v_801: G = __r_arr[33]; - let __v_802: G = __r_arr[34]; - let __v_803: G = __r_arr[35]; - let __v_804: G = __r_arr[36]; - let __v_805: G = __r_arr[37]; - let __v_806: G = __r_arr[38]; - let __v_807: G = __r_arr[39]; - let __v_808: G = __r_arr[40]; - let __v_809: G = __r_arr[41]; - let __v_810: G = __r_arr[42]; - let __v_811: G = __r_arr[43]; - let __v_812: G = __r_arr[44]; - let __v_813: G = __r_arr[45]; - let __v_814: G = __r_arr[46]; - let __v_815: G = __r_arr[47]; - let __v_816: G = __r_arr[48]; - let __v_817: G = __r_arr[49]; - let __v_818: G = __r_arr[50]; - let __v_819: G = __r_arr[51]; - let __v_820: G = __r_arr[52]; - let __v_821: G = __r_arr[53]; - let __v_822: G = __r_arr[54]; - let __v_823: G = __r_arr[55]; - let __v_824: G = __r_arr[56]; - let __v_825: G = __r_arr[57]; - let __v_826: G = __r_arr[58]; - let __v_827: G = __r_arr[59]; - let __v_828: G = __r_arr[60]; - let __v_829: G = __r_arr[61]; - let __v_830: G = __r_arr[62]; - let __v_831: G = __r_arr[63]; - let __v_832: G = __r_arr[64]; - let __v_833: G = __r_arr[65]; - let __v_834: G = __r_arr[66]; - let __v_835: G = __r_arr[67]; - let __v_836: G = __r_arr[68]; - let __v_837: G = __r_arr[69]; - let __v_838: G = __r_arr[70]; - let __v_839: G = __r_arr[71]; - let __v_840: G = __r_arr[72]; - let __v_841: G = __r_arr[73]; - let __v_842: G = __r_arr[74]; - let __v_843: G = __r_arr[75]; - let __v_844: G = __r_arr[76]; - let __v_845: G = __r_arr[77]; - let __v_846: G = __r_arr[78]; - let __v_847: G = __r_arr[79]; - let __v_848: G = __r_arr[80]; - let __v_849: G = __r_arr[81]; - let __v_850: G = __r_arr[82]; - let __v_851: G = __r_arr[83]; - let __v_852: G = __r_arr[84]; - let __v_853: G = __r_arr[85]; - let __v_854: G = __r_arr[86]; - let __v_855: G = __r_arr[87]; - let __v_856: G = __r_arr[88]; - let __v_857: G = __r_arr[89]; - let __v_858: G = __r_arr[90]; - let __v_859: G = __r_arr[91]; - let __v_860: G = __r_arr[92]; - let __v_861: G = __r_arr[93]; - let __v_862: G = __r_arr[94]; - let __v_863: G = __r_arr[95]; - let __v_864: G = __r_arr[96]; - let __v_865: G = __r_arr[97]; - let __v_866: G = __r_arr[98]; - let __v_867: G = __r_arr[99]; - let __v_868: G = __r_arr[100]; - let __v_869: G = __r_arr[101]; - let __v_870: G = __r_arr[102]; - let __v_871: G = __r_arr[103]; - let __v_872: G = __r_arr[104]; - let __v_873: G = __r_arr[105]; - let __v_874: G = __r_arr[106]; - let __v_875: G = __r_arr[107]; - let __v_876: G = __r_arr[108]; - let __v_877: G = __r_arr[109]; - let __v_878: G = __r_arr[110]; - let __v_879: G = __r_arr[111]; - let __v_880: G = __r_arr[112]; - let __v_881: G = __r_arr[113]; - let __v_882: G = __r_arr[114]; - let __v_883: G = __r_arr[115]; - let __v_884: G = __r_arr[116]; - let __v_885: G = __r_arr[117]; - let __v_886: G = __r_arr[118]; - let __v_887: G = __r_arr[119]; - let __v_888: G = __r_arr[120]; - let __v_889: G = __r_arr[121]; - let __v_890: G = __r_arr[122]; - let __v_891: G = __r_arr[123]; - let __v_892: G = __r_arr[124]; - let __v_893: G = __r_arr[125]; - let __v_894: G = __r_arr[126]; - let __v_895: G = __r_arr[127]; - let __r_arr: [G; OUT_28] = { let __args: [G; IN_28] = [__v_768, __v_769, __v_770, __v_771, __v_772, __v_773, __v_774, __v_775, __v_776, __v_777, __v_778, __v_779, __v_780, __v_781, __v_782, __v_783, __v_784, __v_785, __v_786, __v_787, __v_788, __v_789, __v_790, __v_791, __v_792, __v_793, __v_794, __v_795, __v_796, __v_797, __v_798, __v_799, __v_800, __v_801, __v_802, __v_803, __v_804, __v_805, __v_806, __v_807, __v_808, __v_809, __v_810, __v_811, __v_812, __v_813, __v_814, __v_815, __v_816, __v_817, __v_818, __v_819, __v_820, __v_821, __v_822, __v_823, __v_824, __v_825, __v_826, __v_827, __v_828, __v_829, __v_830, __v_831, __v_832, __v_833, __v_834, __v_835, __v_836, __v_837, __v_838, __v_839, __v_840, __v_841, __v_842, __v_843, __v_844, __v_845, __v_846, __v_847, __v_848, __v_849, __v_850, __v_851, __v_852, __v_853, __v_854, __v_855, __v_856, __v_857, __v_858, __v_859, __v_860, __v_861, __v_862, __v_863, __v_864, __v_865, __v_866, __v_867, __v_868, __v_869, __v_870, __v_871, __v_872, __v_873, __v_874, __v_875, __v_876, __v_877, __v_878, __v_879, __v_880, __v_881, __v_882, __v_883, __v_884, __v_885, __v_886, __v_887, __v_888, __v_889, __v_890, __v_891, __v_892, __v_893, __v_894, __v_895]; let __cu = unconstrained; if let Some(result) = record.function_queries[28].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_28] = unsafe { *(result.output.as_ptr() as *const [G; OUT_28]) }; __ret } else { aiur_fn_28(__args, record, io_buffer, __cu)? } }; - let __v_896: G = __r_arr[0]; - let __v_897: G = __r_arr[1]; - let __v_898: G = __r_arr[2]; - let __v_899: G = __r_arr[3]; - let __v_900: G = __r_arr[4]; - let __v_901: G = __r_arr[5]; - let __v_902: G = __r_arr[6]; - let __v_903: G = __r_arr[7]; - let __v_904: G = __r_arr[8]; - let __v_905: G = __r_arr[9]; - let __v_906: G = __r_arr[10]; - let __v_907: G = __r_arr[11]; - let __v_908: G = __r_arr[12]; - let __v_909: G = __r_arr[13]; - let __v_910: G = __r_arr[14]; - let __v_911: G = __r_arr[15]; - let __v_912: G = __r_arr[16]; - let __v_913: G = __r_arr[17]; - let __v_914: G = __r_arr[18]; - let __v_915: G = __r_arr[19]; - let __v_916: G = __r_arr[20]; - let __v_917: G = __r_arr[21]; - let __v_918: G = __r_arr[22]; - let __v_919: G = __r_arr[23]; - let __v_920: G = __r_arr[24]; - let __v_921: G = __r_arr[25]; - let __v_922: G = __r_arr[26]; - let __v_923: G = __r_arr[27]; - let __v_924: G = __r_arr[28]; - let __v_925: G = __r_arr[29]; - let __v_926: G = __r_arr[30]; - let __v_927: G = __r_arr[31]; - let __v_928: G = __r_arr[32]; - let __v_929: G = __r_arr[33]; - let __v_930: G = __r_arr[34]; - let __v_931: G = __r_arr[35]; - let __v_932: G = __r_arr[36]; - let __v_933: G = __r_arr[37]; - let __v_934: G = __r_arr[38]; - let __v_935: G = __r_arr[39]; - let __v_936: G = __r_arr[40]; - let __v_937: G = __r_arr[41]; - let __v_938: G = __r_arr[42]; - let __v_939: G = __r_arr[43]; - let __v_940: G = __r_arr[44]; - let __v_941: G = __r_arr[45]; - let __v_942: G = __r_arr[46]; - let __v_943: G = __r_arr[47]; - let __v_944: G = __r_arr[48]; - let __v_945: G = __r_arr[49]; - let __v_946: G = __r_arr[50]; - let __v_947: G = __r_arr[51]; - let __v_948: G = __r_arr[52]; - let __v_949: G = __r_arr[53]; - let __v_950: G = __r_arr[54]; - let __v_951: G = __r_arr[55]; - let __v_952: G = __r_arr[56]; - let __v_953: G = __r_arr[57]; - let __v_954: G = __r_arr[58]; - let __v_955: G = __r_arr[59]; - let __v_956: G = __r_arr[60]; - let __v_957: G = __r_arr[61]; - let __v_958: G = __r_arr[62]; - let __v_959: G = __r_arr[63]; - let __v_960: G = __r_arr[64]; - let __v_961: G = __r_arr[65]; - let __v_962: G = __r_arr[66]; - let __v_963: G = __r_arr[67]; - let __v_964: G = __r_arr[68]; - let __v_965: G = __r_arr[69]; - let __v_966: G = __r_arr[70]; - let __v_967: G = __r_arr[71]; - let __v_968: G = __r_arr[72]; - let __v_969: G = __r_arr[73]; - let __v_970: G = __r_arr[74]; - let __v_971: G = __r_arr[75]; - let __v_972: G = __r_arr[76]; - let __v_973: G = __r_arr[77]; - let __v_974: G = __r_arr[78]; - let __v_975: G = __r_arr[79]; - let __v_976: G = __r_arr[80]; - let __v_977: G = __r_arr[81]; - let __v_978: G = __r_arr[82]; - let __v_979: G = __r_arr[83]; - let __v_980: G = __r_arr[84]; - let __v_981: G = __r_arr[85]; - let __v_982: G = __r_arr[86]; - let __v_983: G = __r_arr[87]; - let __v_984: G = __r_arr[88]; - let __v_985: G = __r_arr[89]; - let __v_986: G = __r_arr[90]; - let __v_987: G = __r_arr[91]; - let __v_988: G = __r_arr[92]; - let __v_989: G = __r_arr[93]; - let __v_990: G = __r_arr[94]; - let __v_991: G = __r_arr[95]; - let __v_992: G = __r_arr[96]; - let __v_993: G = __r_arr[97]; - let __v_994: G = __r_arr[98]; - let __v_995: G = __r_arr[99]; - let __v_996: G = __r_arr[100]; - let __v_997: G = __r_arr[101]; - let __v_998: G = __r_arr[102]; - let __v_999: G = __r_arr[103]; - let __v_1000: G = __r_arr[104]; - let __v_1001: G = __r_arr[105]; - let __v_1002: G = __r_arr[106]; - let __v_1003: G = __r_arr[107]; - let __v_1004: G = __r_arr[108]; - let __v_1005: G = __r_arr[109]; - let __v_1006: G = __r_arr[110]; - let __v_1007: G = __r_arr[111]; - let __v_1008: G = __r_arr[112]; - let __v_1009: G = __r_arr[113]; - let __v_1010: G = __r_arr[114]; - let __v_1011: G = __r_arr[115]; - let __v_1012: G = __r_arr[116]; - let __v_1013: G = __r_arr[117]; - let __v_1014: G = __r_arr[118]; - let __v_1015: G = __r_arr[119]; - let __v_1016: G = __r_arr[120]; - let __v_1017: G = __r_arr[121]; - let __v_1018: G = __r_arr[122]; - let __v_1019: G = __r_arr[123]; - let __v_1020: G = __r_arr[124]; - let __v_1021: G = __r_arr[125]; - let __v_1022: G = __r_arr[126]; - let __v_1023: G = __r_arr[127]; - let __v_1024: G = if unconstrained { Bytes2::xor(&__v_896, &__v_928) } else { bytes2_xor_value(__v_896, __v_928, record) }; - let __v_1025: G = if unconstrained { Bytes2::xor(&__v_897, &__v_929) } else { bytes2_xor_value(__v_897, __v_929, record) }; - let __v_1026: G = if unconstrained { Bytes2::xor(&__v_898, &__v_930) } else { bytes2_xor_value(__v_898, __v_930, record) }; - let __v_1027: G = if unconstrained { Bytes2::xor(&__v_899, &__v_931) } else { bytes2_xor_value(__v_899, __v_931, record) }; - let __v_1028: G = if unconstrained { Bytes2::xor(&__v_900, &__v_932) } else { bytes2_xor_value(__v_900, __v_932, record) }; - let __v_1029: G = if unconstrained { Bytes2::xor(&__v_901, &__v_933) } else { bytes2_xor_value(__v_901, __v_933, record) }; - let __v_1030: G = if unconstrained { Bytes2::xor(&__v_902, &__v_934) } else { bytes2_xor_value(__v_902, __v_934, record) }; - let __v_1031: G = if unconstrained { Bytes2::xor(&__v_903, &__v_935) } else { bytes2_xor_value(__v_903, __v_935, record) }; - let __v_1032: G = if unconstrained { Bytes2::xor(&__v_904, &__v_936) } else { bytes2_xor_value(__v_904, __v_936, record) }; - let __v_1033: G = if unconstrained { Bytes2::xor(&__v_905, &__v_937) } else { bytes2_xor_value(__v_905, __v_937, record) }; - let __v_1034: G = if unconstrained { Bytes2::xor(&__v_906, &__v_938) } else { bytes2_xor_value(__v_906, __v_938, record) }; - let __v_1035: G = if unconstrained { Bytes2::xor(&__v_907, &__v_939) } else { bytes2_xor_value(__v_907, __v_939, record) }; - let __v_1036: G = if unconstrained { Bytes2::xor(&__v_908, &__v_940) } else { bytes2_xor_value(__v_908, __v_940, record) }; - let __v_1037: G = if unconstrained { Bytes2::xor(&__v_909, &__v_941) } else { bytes2_xor_value(__v_909, __v_941, record) }; - let __v_1038: G = if unconstrained { Bytes2::xor(&__v_910, &__v_942) } else { bytes2_xor_value(__v_910, __v_942, record) }; - let __v_1039: G = if unconstrained { Bytes2::xor(&__v_911, &__v_943) } else { bytes2_xor_value(__v_911, __v_943, record) }; - let __v_1040: G = if unconstrained { Bytes2::xor(&__v_912, &__v_944) } else { bytes2_xor_value(__v_912, __v_944, record) }; - let __v_1041: G = if unconstrained { Bytes2::xor(&__v_913, &__v_945) } else { bytes2_xor_value(__v_913, __v_945, record) }; - let __v_1042: G = if unconstrained { Bytes2::xor(&__v_914, &__v_946) } else { bytes2_xor_value(__v_914, __v_946, record) }; - let __v_1043: G = if unconstrained { Bytes2::xor(&__v_915, &__v_947) } else { bytes2_xor_value(__v_915, __v_947, record) }; - let __v_1044: G = if unconstrained { Bytes2::xor(&__v_916, &__v_948) } else { bytes2_xor_value(__v_916, __v_948, record) }; - let __v_1045: G = if unconstrained { Bytes2::xor(&__v_917, &__v_949) } else { bytes2_xor_value(__v_917, __v_949, record) }; - let __v_1046: G = if unconstrained { Bytes2::xor(&__v_918, &__v_950) } else { bytes2_xor_value(__v_918, __v_950, record) }; - let __v_1047: G = if unconstrained { Bytes2::xor(&__v_919, &__v_951) } else { bytes2_xor_value(__v_919, __v_951, record) }; - let __v_1048: G = if unconstrained { Bytes2::xor(&__v_920, &__v_952) } else { bytes2_xor_value(__v_920, __v_952, record) }; - let __v_1049: G = if unconstrained { Bytes2::xor(&__v_921, &__v_953) } else { bytes2_xor_value(__v_921, __v_953, record) }; - let __v_1050: G = if unconstrained { Bytes2::xor(&__v_922, &__v_954) } else { bytes2_xor_value(__v_922, __v_954, record) }; - let __v_1051: G = if unconstrained { Bytes2::xor(&__v_923, &__v_955) } else { bytes2_xor_value(__v_923, __v_955, record) }; - let __v_1052: G = if unconstrained { Bytes2::xor(&__v_924, &__v_956) } else { bytes2_xor_value(__v_924, __v_956, record) }; - let __v_1053: G = if unconstrained { Bytes2::xor(&__v_925, &__v_957) } else { bytes2_xor_value(__v_925, __v_957, record) }; - let __v_1054: G = if unconstrained { Bytes2::xor(&__v_926, &__v_958) } else { bytes2_xor_value(__v_926, __v_958, record) }; - let __v_1055: G = if unconstrained { Bytes2::xor(&__v_927, &__v_959) } else { bytes2_xor_value(__v_927, __v_959, record) }; - let __ret: [G; OUT_29] = [__v_1024, __v_1025, __v_1026, __v_1027, __v_1028, __v_1029, __v_1030, __v_1031, __v_1032, __v_1033, __v_1034, __v_1035, __v_1036, __v_1037, __v_1038, __v_1039, __v_1040, __v_1041, __v_1042, __v_1043, __v_1044, __v_1045, __v_1046, __v_1047, __v_1048, __v_1049, __v_1050, __v_1051, __v_1052, __v_1053, __v_1054, __v_1055]; + let __u32_sum: u128 = u128::from(((__v_0.as_canonical_u64() << 0) | (__v_1.as_canonical_u64() << 8) | (__v_2.as_canonical_u64() << 16) | (__v_3.as_canonical_u64() << 24))) + u128::from(((__v_16.as_canonical_u64() << 0) | (__v_17.as_canonical_u64() << 8) | (__v_18.as_canonical_u64() << 16) | (__v_19.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_128: G = G::from_u8(__u32_bytes[0]); + let __v_129: G = G::from_u8(__u32_bytes[1]); + let __v_130: G = G::from_u8(__u32_bytes[2]); + let __v_131: G = G::from_u8(__u32_bytes[3]); + let __v_132: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_128; let __vj = __v_129; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_130; let __vj = __v_131; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_133: G = G::from_u64(1); + let __v_134: G = (__v_132 - __v_133); + let __v_135: G = G::from_u64(2); + let __v_136: G = (__v_132 - __v_135); + let __v_137: G = (__v_134 * __v_136); + let __v_138: G = (__v_132 * __v_137); + let __v_139: G = G::from_u64(0); + if (__v_138 != __v_139) { + return Err(ExecError::AssertEqMismatch { lhs: __v_138.as_canonical_u64(), rhs: __v_139.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_140: G = if unconstrained { Bytes2::xor(&__v_96, &__v_128) } else { bytes2_xor_value(__v_96, __v_128, record) }; + let __v_141: G = if unconstrained { Bytes2::xor(&__v_97, &__v_129) } else { bytes2_xor_value(__v_97, __v_129, record) }; + let __v_142: G = if unconstrained { Bytes2::xor(&__v_98, &__v_130) } else { bytes2_xor_value(__v_98, __v_130, record) }; + let __v_143: G = if unconstrained { Bytes2::xor(&__v_99, &__v_131) } else { bytes2_xor_value(__v_99, __v_131, record) }; + let __u32_sum: u128 = u128::from(((__v_106.as_canonical_u64() << 0) | (__v_107.as_canonical_u64() << 8) | (__v_108.as_canonical_u64() << 16) | (__v_109.as_canonical_u64() << 24))) + u128::from(((__v_142.as_canonical_u64() << 0) | (__v_143.as_canonical_u64() << 8) | (__v_140.as_canonical_u64() << 16) | (__v_141.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_144: G = G::from_u8(__u32_bytes[0]); + let __v_145: G = G::from_u8(__u32_bytes[1]); + let __v_146: G = G::from_u8(__u32_bytes[2]); + let __v_147: G = G::from_u8(__u32_bytes[3]); + let __v_148: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_144; let __vj = __v_145; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_146; let __vj = __v_147; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_149: G = (__v_148 * __v_148); + if (__v_149 != __v_148) { + return Err(ExecError::AssertEqMismatch { lhs: __v_149.as_canonical_u64(), rhs: __v_148.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_16, &__v_144) } else { bytes2_xor_split4_value(__v_16, __v_144, record) }; + let __v_150: G = __b2_out.0; + let __v_151: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_17, &__v_145) } else { bytes2_xor_split4_value(__v_17, __v_145, record) }; + let __v_152: G = __b2_out.0; + let __v_153: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_18, &__v_146) } else { bytes2_xor_split4_value(__v_18, __v_146, record) }; + let __v_154: G = __b2_out.0; + let __v_155: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_19, &__v_147) } else { bytes2_xor_split4_value(__v_19, __v_147, record) }; + let __v_156: G = __b2_out.0; + let __v_157: G = __b2_out.1; + let __v_158: G = (__v_152 + __v_155); + let __v_159: G = (__v_154 + __v_157); + let __v_160: G = (__v_156 + __v_151); + let __v_161: G = (__v_150 + __v_153); + let __u32_sum: u128 = u128::from(((__v_128.as_canonical_u64() << 0) | (__v_129.as_canonical_u64() << 8) | (__v_130.as_canonical_u64() << 16) | (__v_131.as_canonical_u64() << 24))) + u128::from(((__v_158.as_canonical_u64() << 0) | (__v_159.as_canonical_u64() << 8) | (__v_160.as_canonical_u64() << 16) | (__v_161.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_162: G = G::from_u8(__u32_bytes[0]); + let __v_163: G = G::from_u8(__u32_bytes[1]); + let __v_164: G = G::from_u8(__u32_bytes[2]); + let __v_165: G = G::from_u8(__u32_bytes[3]); + let __v_166: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_162; let __vj = __v_163; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_164; let __vj = __v_165; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_167: G = G::from_u64(1); + let __v_168: G = (__v_166 - __v_167); + let __v_169: G = G::from_u64(2); + let __v_170: G = (__v_166 - __v_169); + let __v_171: G = (__v_168 * __v_170); + let __v_172: G = (__v_166 * __v_171); + let __v_173: G = G::from_u64(0); + if (__v_172 != __v_173) { + return Err(ExecError::AssertEqMismatch { lhs: __v_172.as_canonical_u64(), rhs: __v_173.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_174: G = if unconstrained { Bytes2::xor(&__v_142, &__v_162) } else { bytes2_xor_value(__v_142, __v_162, record) }; + let __v_175: G = if unconstrained { Bytes2::xor(&__v_143, &__v_163) } else { bytes2_xor_value(__v_143, __v_163, record) }; + let __v_176: G = if unconstrained { Bytes2::xor(&__v_140, &__v_164) } else { bytes2_xor_value(__v_140, __v_164, record) }; + let __v_177: G = if unconstrained { Bytes2::xor(&__v_141, &__v_165) } else { bytes2_xor_value(__v_141, __v_165, record) }; + let __u32_sum: u128 = u128::from(((__v_144.as_canonical_u64() << 0) | (__v_145.as_canonical_u64() << 8) | (__v_146.as_canonical_u64() << 16) | (__v_147.as_canonical_u64() << 24))) + u128::from(((__v_175.as_canonical_u64() << 0) | (__v_176.as_canonical_u64() << 8) | (__v_177.as_canonical_u64() << 16) | (__v_174.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_178: G = G::from_u8(__u32_bytes[0]); + let __v_179: G = G::from_u8(__u32_bytes[1]); + let __v_180: G = G::from_u8(__u32_bytes[2]); + let __v_181: G = G::from_u8(__u32_bytes[3]); + let __v_182: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_178; let __vj = __v_179; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_180; let __vj = __v_181; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_183: G = (__v_182 * __v_182); + if (__v_183 != __v_182) { + return Err(ExecError::AssertEqMismatch { lhs: __v_183.as_canonical_u64(), rhs: __v_182.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_158, &__v_178) } else { bytes2_xor_split7_value(__v_158, __v_178, record) }; + let __v_184: G = __b2_out.0; + let __v_185: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_159, &__v_179) } else { bytes2_xor_split7_value(__v_159, __v_179, record) }; + let __v_186: G = __b2_out.0; + let __v_187: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_160, &__v_180) } else { bytes2_xor_split7_value(__v_160, __v_180, record) }; + let __v_188: G = __b2_out.0; + let __v_189: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_161, &__v_181) } else { bytes2_xor_split7_value(__v_161, __v_181, record) }; + let __v_190: G = __b2_out.0; + let __v_191: G = __b2_out.1; + let __v_192: G = (__v_184 + __v_187); + let __v_193: G = (__v_186 + __v_189); + let __v_194: G = (__v_188 + __v_191); + let __v_195: G = (__v_190 + __v_185); + let __u32_sum: u128 = u128::from(((__v_4.as_canonical_u64() << 0) | (__v_5.as_canonical_u64() << 8) | (__v_6.as_canonical_u64() << 16) | (__v_7.as_canonical_u64() << 24))) + u128::from(((__v_20.as_canonical_u64() << 0) | (__v_21.as_canonical_u64() << 8) | (__v_22.as_canonical_u64() << 16) | (__v_23.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_196: G = G::from_u8(__u32_bytes[0]); + let __v_197: G = G::from_u8(__u32_bytes[1]); + let __v_198: G = G::from_u8(__u32_bytes[2]); + let __v_199: G = G::from_u8(__u32_bytes[3]); + let __v_200: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_196; let __vj = __v_197; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_198; let __vj = __v_199; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_201: G = G::from_u64(1); + let __v_202: G = (__v_200 - __v_201); + let __v_203: G = G::from_u64(2); + let __v_204: G = (__v_200 - __v_203); + let __v_205: G = (__v_202 * __v_204); + let __v_206: G = (__v_200 * __v_205); + let __v_207: G = G::from_u64(0); + if (__v_206 != __v_207) { + return Err(ExecError::AssertEqMismatch { lhs: __v_206.as_canonical_u64(), rhs: __v_207.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_208: G = if unconstrained { Bytes2::xor(&__v_100, &__v_196) } else { bytes2_xor_value(__v_100, __v_196, record) }; + let __v_209: G = if unconstrained { Bytes2::xor(&__v_101, &__v_197) } else { bytes2_xor_value(__v_101, __v_197, record) }; + let __v_210: G = if unconstrained { Bytes2::xor(&__v_102, &__v_198) } else { bytes2_xor_value(__v_102, __v_198, record) }; + let __v_211: G = if unconstrained { Bytes2::xor(&__v_103, &__v_199) } else { bytes2_xor_value(__v_103, __v_199, record) }; + let __u32_sum: u128 = u128::from(((__v_110.as_canonical_u64() << 0) | (__v_111.as_canonical_u64() << 8) | (__v_112.as_canonical_u64() << 16) | (__v_113.as_canonical_u64() << 24))) + u128::from(((__v_210.as_canonical_u64() << 0) | (__v_211.as_canonical_u64() << 8) | (__v_208.as_canonical_u64() << 16) | (__v_209.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_212: G = G::from_u8(__u32_bytes[0]); + let __v_213: G = G::from_u8(__u32_bytes[1]); + let __v_214: G = G::from_u8(__u32_bytes[2]); + let __v_215: G = G::from_u8(__u32_bytes[3]); + let __v_216: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_212; let __vj = __v_213; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_214; let __vj = __v_215; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_217: G = (__v_216 * __v_216); + if (__v_217 != __v_216) { + return Err(ExecError::AssertEqMismatch { lhs: __v_217.as_canonical_u64(), rhs: __v_216.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_20, &__v_212) } else { bytes2_xor_split4_value(__v_20, __v_212, record) }; + let __v_218: G = __b2_out.0; + let __v_219: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_21, &__v_213) } else { bytes2_xor_split4_value(__v_21, __v_213, record) }; + let __v_220: G = __b2_out.0; + let __v_221: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_22, &__v_214) } else { bytes2_xor_split4_value(__v_22, __v_214, record) }; + let __v_222: G = __b2_out.0; + let __v_223: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_23, &__v_215) } else { bytes2_xor_split4_value(__v_23, __v_215, record) }; + let __v_224: G = __b2_out.0; + let __v_225: G = __b2_out.1; + let __v_226: G = (__v_220 + __v_223); + let __v_227: G = (__v_222 + __v_225); + let __v_228: G = (__v_224 + __v_219); + let __v_229: G = (__v_218 + __v_221); + let __u32_sum: u128 = u128::from(((__v_196.as_canonical_u64() << 0) | (__v_197.as_canonical_u64() << 8) | (__v_198.as_canonical_u64() << 16) | (__v_199.as_canonical_u64() << 24))) + u128::from(((__v_226.as_canonical_u64() << 0) | (__v_227.as_canonical_u64() << 8) | (__v_228.as_canonical_u64() << 16) | (__v_229.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_230: G = G::from_u8(__u32_bytes[0]); + let __v_231: G = G::from_u8(__u32_bytes[1]); + let __v_232: G = G::from_u8(__u32_bytes[2]); + let __v_233: G = G::from_u8(__u32_bytes[3]); + let __v_234: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_230; let __vj = __v_231; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_232; let __vj = __v_233; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_235: G = G::from_u64(1); + let __v_236: G = (__v_234 - __v_235); + let __v_237: G = G::from_u64(2); + let __v_238: G = (__v_234 - __v_237); + let __v_239: G = (__v_236 * __v_238); + let __v_240: G = (__v_234 * __v_239); + let __v_241: G = G::from_u64(0); + if (__v_240 != __v_241) { + return Err(ExecError::AssertEqMismatch { lhs: __v_240.as_canonical_u64(), rhs: __v_241.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_242: G = if unconstrained { Bytes2::xor(&__v_210, &__v_230) } else { bytes2_xor_value(__v_210, __v_230, record) }; + let __v_243: G = if unconstrained { Bytes2::xor(&__v_211, &__v_231) } else { bytes2_xor_value(__v_211, __v_231, record) }; + let __v_244: G = if unconstrained { Bytes2::xor(&__v_208, &__v_232) } else { bytes2_xor_value(__v_208, __v_232, record) }; + let __v_245: G = if unconstrained { Bytes2::xor(&__v_209, &__v_233) } else { bytes2_xor_value(__v_209, __v_233, record) }; + let __u32_sum: u128 = u128::from(((__v_212.as_canonical_u64() << 0) | (__v_213.as_canonical_u64() << 8) | (__v_214.as_canonical_u64() << 16) | (__v_215.as_canonical_u64() << 24))) + u128::from(((__v_243.as_canonical_u64() << 0) | (__v_244.as_canonical_u64() << 8) | (__v_245.as_canonical_u64() << 16) | (__v_242.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_246: G = G::from_u8(__u32_bytes[0]); + let __v_247: G = G::from_u8(__u32_bytes[1]); + let __v_248: G = G::from_u8(__u32_bytes[2]); + let __v_249: G = G::from_u8(__u32_bytes[3]); + let __v_250: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_246; let __vj = __v_247; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_248; let __vj = __v_249; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_251: G = (__v_250 * __v_250); + if (__v_251 != __v_250) { + return Err(ExecError::AssertEqMismatch { lhs: __v_251.as_canonical_u64(), rhs: __v_250.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_226, &__v_246) } else { bytes2_xor_split7_value(__v_226, __v_246, record) }; + let __v_252: G = __b2_out.0; + let __v_253: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_227, &__v_247) } else { bytes2_xor_split7_value(__v_227, __v_247, record) }; + let __v_254: G = __b2_out.0; + let __v_255: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_228, &__v_248) } else { bytes2_xor_split7_value(__v_228, __v_248, record) }; + let __v_256: G = __b2_out.0; + let __v_257: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_229, &__v_249) } else { bytes2_xor_split7_value(__v_229, __v_249, record) }; + let __v_258: G = __b2_out.0; + let __v_259: G = __b2_out.1; + let __v_260: G = (__v_252 + __v_255); + let __v_261: G = (__v_254 + __v_257); + let __v_262: G = (__v_256 + __v_259); + let __v_263: G = (__v_258 + __v_253); + let __u32_sum: u128 = u128::from(((__v_8.as_canonical_u64() << 0) | (__v_9.as_canonical_u64() << 8) | (__v_10.as_canonical_u64() << 16) | (__v_11.as_canonical_u64() << 24))) + u128::from(((__v_24.as_canonical_u64() << 0) | (__v_25.as_canonical_u64() << 8) | (__v_26.as_canonical_u64() << 16) | (__v_27.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_264: G = G::from_u8(__u32_bytes[0]); + let __v_265: G = G::from_u8(__u32_bytes[1]); + let __v_266: G = G::from_u8(__u32_bytes[2]); + let __v_267: G = G::from_u8(__u32_bytes[3]); + let __v_268: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_264; let __vj = __v_265; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_266; let __vj = __v_267; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_269: G = G::from_u64(1); + let __v_270: G = (__v_268 - __v_269); + let __v_271: G = G::from_u64(2); + let __v_272: G = (__v_268 - __v_271); + let __v_273: G = (__v_270 * __v_272); + let __v_274: G = (__v_268 * __v_273); + let __v_275: G = G::from_u64(0); + if (__v_274 != __v_275) { + return Err(ExecError::AssertEqMismatch { lhs: __v_274.as_canonical_u64(), rhs: __v_275.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_276: G = if unconstrained { Bytes2::xor(&__v_104, &__v_264) } else { bytes2_xor_value(__v_104, __v_264, record) }; + let __v_277: G = if unconstrained { Bytes2::xor(&__v_122, &__v_265) } else { bytes2_xor_value(__v_122, __v_265, record) }; + let __v_278: G = if unconstrained { Bytes2::xor(&__v_123, &__v_266) } else { bytes2_xor_value(__v_123, __v_266, record) }; + let __v_279: G = if unconstrained { Bytes2::xor(&__v_124, &__v_267) } else { bytes2_xor_value(__v_124, __v_267, record) }; + let __u32_sum: u128 = u128::from(((__v_114.as_canonical_u64() << 0) | (__v_115.as_canonical_u64() << 8) | (__v_116.as_canonical_u64() << 16) | (__v_117.as_canonical_u64() << 24))) + u128::from(((__v_278.as_canonical_u64() << 0) | (__v_279.as_canonical_u64() << 8) | (__v_276.as_canonical_u64() << 16) | (__v_277.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_280: G = G::from_u8(__u32_bytes[0]); + let __v_281: G = G::from_u8(__u32_bytes[1]); + let __v_282: G = G::from_u8(__u32_bytes[2]); + let __v_283: G = G::from_u8(__u32_bytes[3]); + let __v_284: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_280; let __vj = __v_281; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_282; let __vj = __v_283; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_285: G = (__v_284 * __v_284); + if (__v_285 != __v_284) { + return Err(ExecError::AssertEqMismatch { lhs: __v_285.as_canonical_u64(), rhs: __v_284.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_24, &__v_280) } else { bytes2_xor_split4_value(__v_24, __v_280, record) }; + let __v_286: G = __b2_out.0; + let __v_287: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_25, &__v_281) } else { bytes2_xor_split4_value(__v_25, __v_281, record) }; + let __v_288: G = __b2_out.0; + let __v_289: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_26, &__v_282) } else { bytes2_xor_split4_value(__v_26, __v_282, record) }; + let __v_290: G = __b2_out.0; + let __v_291: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_27, &__v_283) } else { bytes2_xor_split4_value(__v_27, __v_283, record) }; + let __v_292: G = __b2_out.0; + let __v_293: G = __b2_out.1; + let __v_294: G = (__v_288 + __v_291); + let __v_295: G = (__v_290 + __v_293); + let __v_296: G = (__v_292 + __v_287); + let __v_297: G = (__v_286 + __v_289); + let __u32_sum: u128 = u128::from(((__v_264.as_canonical_u64() << 0) | (__v_265.as_canonical_u64() << 8) | (__v_266.as_canonical_u64() << 16) | (__v_267.as_canonical_u64() << 24))) + u128::from(((__v_294.as_canonical_u64() << 0) | (__v_295.as_canonical_u64() << 8) | (__v_296.as_canonical_u64() << 16) | (__v_297.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_298: G = G::from_u8(__u32_bytes[0]); + let __v_299: G = G::from_u8(__u32_bytes[1]); + let __v_300: G = G::from_u8(__u32_bytes[2]); + let __v_301: G = G::from_u8(__u32_bytes[3]); + let __v_302: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_298; let __vj = __v_299; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_300; let __vj = __v_301; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_303: G = G::from_u64(1); + let __v_304: G = (__v_302 - __v_303); + let __v_305: G = G::from_u64(2); + let __v_306: G = (__v_302 - __v_305); + let __v_307: G = (__v_304 * __v_306); + let __v_308: G = (__v_302 * __v_307); + let __v_309: G = G::from_u64(0); + if (__v_308 != __v_309) { + return Err(ExecError::AssertEqMismatch { lhs: __v_308.as_canonical_u64(), rhs: __v_309.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_310: G = if unconstrained { Bytes2::xor(&__v_278, &__v_298) } else { bytes2_xor_value(__v_278, __v_298, record) }; + let __v_311: G = if unconstrained { Bytes2::xor(&__v_279, &__v_299) } else { bytes2_xor_value(__v_279, __v_299, record) }; + let __v_312: G = if unconstrained { Bytes2::xor(&__v_276, &__v_300) } else { bytes2_xor_value(__v_276, __v_300, record) }; + let __v_313: G = if unconstrained { Bytes2::xor(&__v_277, &__v_301) } else { bytes2_xor_value(__v_277, __v_301, record) }; + let __u32_sum: u128 = u128::from(((__v_280.as_canonical_u64() << 0) | (__v_281.as_canonical_u64() << 8) | (__v_282.as_canonical_u64() << 16) | (__v_283.as_canonical_u64() << 24))) + u128::from(((__v_311.as_canonical_u64() << 0) | (__v_312.as_canonical_u64() << 8) | (__v_313.as_canonical_u64() << 16) | (__v_310.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_314: G = G::from_u8(__u32_bytes[0]); + let __v_315: G = G::from_u8(__u32_bytes[1]); + let __v_316: G = G::from_u8(__u32_bytes[2]); + let __v_317: G = G::from_u8(__u32_bytes[3]); + let __v_318: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_314; let __vj = __v_315; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_316; let __vj = __v_317; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_319: G = (__v_318 * __v_318); + if (__v_319 != __v_318) { + return Err(ExecError::AssertEqMismatch { lhs: __v_319.as_canonical_u64(), rhs: __v_318.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_294, &__v_314) } else { bytes2_xor_split7_value(__v_294, __v_314, record) }; + let __v_320: G = __b2_out.0; + let __v_321: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_295, &__v_315) } else { bytes2_xor_split7_value(__v_295, __v_315, record) }; + let __v_322: G = __b2_out.0; + let __v_323: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_296, &__v_316) } else { bytes2_xor_split7_value(__v_296, __v_316, record) }; + let __v_324: G = __b2_out.0; + let __v_325: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_297, &__v_317) } else { bytes2_xor_split7_value(__v_297, __v_317, record) }; + let __v_326: G = __b2_out.0; + let __v_327: G = __b2_out.1; + let __v_328: G = (__v_320 + __v_323); + let __v_329: G = (__v_322 + __v_325); + let __v_330: G = (__v_324 + __v_327); + let __v_331: G = (__v_326 + __v_321); + let __u32_sum: u128 = u128::from(((__v_12.as_canonical_u64() << 0) | (__v_13.as_canonical_u64() << 8) | (__v_14.as_canonical_u64() << 16) | (__v_15.as_canonical_u64() << 24))) + u128::from(((__v_28.as_canonical_u64() << 0) | (__v_29.as_canonical_u64() << 8) | (__v_30.as_canonical_u64() << 16) | (__v_31.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_332: G = G::from_u8(__u32_bytes[0]); + let __v_333: G = G::from_u8(__u32_bytes[1]); + let __v_334: G = G::from_u8(__u32_bytes[2]); + let __v_335: G = G::from_u8(__u32_bytes[3]); + let __v_336: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_332; let __vj = __v_333; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_334; let __vj = __v_335; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_337: G = G::from_u64(1); + let __v_338: G = (__v_336 - __v_337); + let __v_339: G = G::from_u64(2); + let __v_340: G = (__v_336 - __v_339); + let __v_341: G = (__v_338 * __v_340); + let __v_342: G = (__v_336 * __v_341); + let __v_343: G = G::from_u64(0); + if (__v_342 != __v_343) { + return Err(ExecError::AssertEqMismatch { lhs: __v_342.as_canonical_u64(), rhs: __v_343.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_344: G = if unconstrained { Bytes2::xor(&__v_105, &__v_332) } else { bytes2_xor_value(__v_105, __v_332, record) }; + let __v_345: G = if unconstrained { Bytes2::xor(&__v_125, &__v_333) } else { bytes2_xor_value(__v_125, __v_333, record) }; + let __v_346: G = if unconstrained { Bytes2::xor(&__v_126, &__v_334) } else { bytes2_xor_value(__v_126, __v_334, record) }; + let __v_347: G = if unconstrained { Bytes2::xor(&__v_127, &__v_335) } else { bytes2_xor_value(__v_127, __v_335, record) }; + let __u32_sum: u128 = u128::from(((__v_118.as_canonical_u64() << 0) | (__v_119.as_canonical_u64() << 8) | (__v_120.as_canonical_u64() << 16) | (__v_121.as_canonical_u64() << 24))) + u128::from(((__v_346.as_canonical_u64() << 0) | (__v_347.as_canonical_u64() << 8) | (__v_344.as_canonical_u64() << 16) | (__v_345.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_348: G = G::from_u8(__u32_bytes[0]); + let __v_349: G = G::from_u8(__u32_bytes[1]); + let __v_350: G = G::from_u8(__u32_bytes[2]); + let __v_351: G = G::from_u8(__u32_bytes[3]); + let __v_352: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_348; let __vj = __v_349; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_350; let __vj = __v_351; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_353: G = (__v_352 * __v_352); + if (__v_353 != __v_352) { + return Err(ExecError::AssertEqMismatch { lhs: __v_353.as_canonical_u64(), rhs: __v_352.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_28, &__v_348) } else { bytes2_xor_split4_value(__v_28, __v_348, record) }; + let __v_354: G = __b2_out.0; + let __v_355: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_29, &__v_349) } else { bytes2_xor_split4_value(__v_29, __v_349, record) }; + let __v_356: G = __b2_out.0; + let __v_357: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_30, &__v_350) } else { bytes2_xor_split4_value(__v_30, __v_350, record) }; + let __v_358: G = __b2_out.0; + let __v_359: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_31, &__v_351) } else { bytes2_xor_split4_value(__v_31, __v_351, record) }; + let __v_360: G = __b2_out.0; + let __v_361: G = __b2_out.1; + let __v_362: G = (__v_356 + __v_359); + let __v_363: G = (__v_358 + __v_361); + let __v_364: G = (__v_360 + __v_355); + let __v_365: G = (__v_354 + __v_357); + let __u32_sum: u128 = u128::from(((__v_332.as_canonical_u64() << 0) | (__v_333.as_canonical_u64() << 8) | (__v_334.as_canonical_u64() << 16) | (__v_335.as_canonical_u64() << 24))) + u128::from(((__v_362.as_canonical_u64() << 0) | (__v_363.as_canonical_u64() << 8) | (__v_364.as_canonical_u64() << 16) | (__v_365.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_366: G = G::from_u8(__u32_bytes[0]); + let __v_367: G = G::from_u8(__u32_bytes[1]); + let __v_368: G = G::from_u8(__u32_bytes[2]); + let __v_369: G = G::from_u8(__u32_bytes[3]); + let __v_370: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_366; let __vj = __v_367; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_368; let __vj = __v_369; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_371: G = G::from_u64(1); + let __v_372: G = (__v_370 - __v_371); + let __v_373: G = G::from_u64(2); + let __v_374: G = (__v_370 - __v_373); + let __v_375: G = (__v_372 * __v_374); + let __v_376: G = (__v_370 * __v_375); + let __v_377: G = G::from_u64(0); + if (__v_376 != __v_377) { + return Err(ExecError::AssertEqMismatch { lhs: __v_376.as_canonical_u64(), rhs: __v_377.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_378: G = if unconstrained { Bytes2::xor(&__v_346, &__v_366) } else { bytes2_xor_value(__v_346, __v_366, record) }; + let __v_379: G = if unconstrained { Bytes2::xor(&__v_347, &__v_367) } else { bytes2_xor_value(__v_347, __v_367, record) }; + let __v_380: G = if unconstrained { Bytes2::xor(&__v_344, &__v_368) } else { bytes2_xor_value(__v_344, __v_368, record) }; + let __v_381: G = if unconstrained { Bytes2::xor(&__v_345, &__v_369) } else { bytes2_xor_value(__v_345, __v_369, record) }; + let __u32_sum: u128 = u128::from(((__v_348.as_canonical_u64() << 0) | (__v_349.as_canonical_u64() << 8) | (__v_350.as_canonical_u64() << 16) | (__v_351.as_canonical_u64() << 24))) + u128::from(((__v_379.as_canonical_u64() << 0) | (__v_380.as_canonical_u64() << 8) | (__v_381.as_canonical_u64() << 16) | (__v_378.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_382: G = G::from_u8(__u32_bytes[0]); + let __v_383: G = G::from_u8(__u32_bytes[1]); + let __v_384: G = G::from_u8(__u32_bytes[2]); + let __v_385: G = G::from_u8(__u32_bytes[3]); + let __v_386: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_382; let __vj = __v_383; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_384; let __vj = __v_385; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_387: G = (__v_386 * __v_386); + if (__v_387 != __v_386) { + return Err(ExecError::AssertEqMismatch { lhs: __v_387.as_canonical_u64(), rhs: __v_386.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_362, &__v_382) } else { bytes2_xor_split7_value(__v_362, __v_382, record) }; + let __v_388: G = __b2_out.0; + let __v_389: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_363, &__v_383) } else { bytes2_xor_split7_value(__v_363, __v_383, record) }; + let __v_390: G = __b2_out.0; + let __v_391: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_364, &__v_384) } else { bytes2_xor_split7_value(__v_364, __v_384, record) }; + let __v_392: G = __b2_out.0; + let __v_393: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_365, &__v_385) } else { bytes2_xor_split7_value(__v_365, __v_385, record) }; + let __v_394: G = __b2_out.0; + let __v_395: G = __b2_out.1; + let __v_396: G = (__v_388 + __v_391); + let __v_397: G = (__v_390 + __v_393); + let __v_398: G = (__v_392 + __v_395); + let __v_399: G = (__v_394 + __v_389); + let __u32_sum: u128 = u128::from(((__v_162.as_canonical_u64() << 0) | (__v_163.as_canonical_u64() << 8) | (__v_164.as_canonical_u64() << 16) | (__v_165.as_canonical_u64() << 24))) + u128::from(((__v_260.as_canonical_u64() << 0) | (__v_261.as_canonical_u64() << 8) | (__v_262.as_canonical_u64() << 16) | (__v_263.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_400: G = G::from_u8(__u32_bytes[0]); + let __v_401: G = G::from_u8(__u32_bytes[1]); + let __v_402: G = G::from_u8(__u32_bytes[2]); + let __v_403: G = G::from_u8(__u32_bytes[3]); + let __v_404: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_400; let __vj = __v_401; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_402; let __vj = __v_403; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_405: G = G::from_u64(1); + let __v_406: G = (__v_404 - __v_405); + let __v_407: G = G::from_u64(2); + let __v_408: G = (__v_404 - __v_407); + let __v_409: G = (__v_406 * __v_408); + let __v_410: G = (__v_404 * __v_409); + let __v_411: G = G::from_u64(0); + if (__v_410 != __v_411) { + return Err(ExecError::AssertEqMismatch { lhs: __v_410.as_canonical_u64(), rhs: __v_411.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_412: G = if unconstrained { Bytes2::xor(&__v_379, &__v_400) } else { bytes2_xor_value(__v_379, __v_400, record) }; + let __v_413: G = if unconstrained { Bytes2::xor(&__v_380, &__v_401) } else { bytes2_xor_value(__v_380, __v_401, record) }; + let __v_414: G = if unconstrained { Bytes2::xor(&__v_381, &__v_402) } else { bytes2_xor_value(__v_381, __v_402, record) }; + let __v_415: G = if unconstrained { Bytes2::xor(&__v_378, &__v_403) } else { bytes2_xor_value(__v_378, __v_403, record) }; + let __u32_sum: u128 = u128::from(((__v_314.as_canonical_u64() << 0) | (__v_315.as_canonical_u64() << 8) | (__v_316.as_canonical_u64() << 16) | (__v_317.as_canonical_u64() << 24))) + u128::from(((__v_414.as_canonical_u64() << 0) | (__v_415.as_canonical_u64() << 8) | (__v_412.as_canonical_u64() << 16) | (__v_413.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_416: G = G::from_u8(__u32_bytes[0]); + let __v_417: G = G::from_u8(__u32_bytes[1]); + let __v_418: G = G::from_u8(__u32_bytes[2]); + let __v_419: G = G::from_u8(__u32_bytes[3]); + let __v_420: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_416; let __vj = __v_417; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_418; let __vj = __v_419; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_421: G = (__v_420 * __v_420); + if (__v_421 != __v_420) { + return Err(ExecError::AssertEqMismatch { lhs: __v_421.as_canonical_u64(), rhs: __v_420.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_260, &__v_416) } else { bytes2_xor_split4_value(__v_260, __v_416, record) }; + let __v_422: G = __b2_out.0; + let __v_423: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_261, &__v_417) } else { bytes2_xor_split4_value(__v_261, __v_417, record) }; + let __v_424: G = __b2_out.0; + let __v_425: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_262, &__v_418) } else { bytes2_xor_split4_value(__v_262, __v_418, record) }; + let __v_426: G = __b2_out.0; + let __v_427: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_263, &__v_419) } else { bytes2_xor_split4_value(__v_263, __v_419, record) }; + let __v_428: G = __b2_out.0; + let __v_429: G = __b2_out.1; + let __v_430: G = (__v_424 + __v_427); + let __v_431: G = (__v_426 + __v_429); + let __v_432: G = (__v_428 + __v_423); + let __v_433: G = (__v_422 + __v_425); + let __u32_sum: u128 = u128::from(((__v_400.as_canonical_u64() << 0) | (__v_401.as_canonical_u64() << 8) | (__v_402.as_canonical_u64() << 16) | (__v_403.as_canonical_u64() << 24))) + u128::from(((__v_430.as_canonical_u64() << 0) | (__v_431.as_canonical_u64() << 8) | (__v_432.as_canonical_u64() << 16) | (__v_433.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_434: G = G::from_u8(__u32_bytes[0]); + let __v_435: G = G::from_u8(__u32_bytes[1]); + let __v_436: G = G::from_u8(__u32_bytes[2]); + let __v_437: G = G::from_u8(__u32_bytes[3]); + let __v_438: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_434; let __vj = __v_435; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_436; let __vj = __v_437; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_439: G = G::from_u64(1); + let __v_440: G = (__v_438 - __v_439); + let __v_441: G = G::from_u64(2); + let __v_442: G = (__v_438 - __v_441); + let __v_443: G = (__v_440 * __v_442); + let __v_444: G = (__v_438 * __v_443); + let __v_445: G = G::from_u64(0); + if (__v_444 != __v_445) { + return Err(ExecError::AssertEqMismatch { lhs: __v_444.as_canonical_u64(), rhs: __v_445.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_446: G = if unconstrained { Bytes2::xor(&__v_414, &__v_434) } else { bytes2_xor_value(__v_414, __v_434, record) }; + let __v_447: G = if unconstrained { Bytes2::xor(&__v_415, &__v_435) } else { bytes2_xor_value(__v_415, __v_435, record) }; + let __v_448: G = if unconstrained { Bytes2::xor(&__v_412, &__v_436) } else { bytes2_xor_value(__v_412, __v_436, record) }; + let __v_449: G = if unconstrained { Bytes2::xor(&__v_413, &__v_437) } else { bytes2_xor_value(__v_413, __v_437, record) }; + let __u32_sum: u128 = u128::from(((__v_416.as_canonical_u64() << 0) | (__v_417.as_canonical_u64() << 8) | (__v_418.as_canonical_u64() << 16) | (__v_419.as_canonical_u64() << 24))) + u128::from(((__v_447.as_canonical_u64() << 0) | (__v_448.as_canonical_u64() << 8) | (__v_449.as_canonical_u64() << 16) | (__v_446.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_450: G = G::from_u8(__u32_bytes[0]); + let __v_451: G = G::from_u8(__u32_bytes[1]); + let __v_452: G = G::from_u8(__u32_bytes[2]); + let __v_453: G = G::from_u8(__u32_bytes[3]); + let __v_454: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_450; let __vj = __v_451; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_452; let __vj = __v_453; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_455: G = (__v_454 * __v_454); + if (__v_455 != __v_454) { + return Err(ExecError::AssertEqMismatch { lhs: __v_455.as_canonical_u64(), rhs: __v_454.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_430, &__v_450) } else { bytes2_xor_split7_value(__v_430, __v_450, record) }; + let __v_456: G = __b2_out.0; + let __v_457: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_431, &__v_451) } else { bytes2_xor_split7_value(__v_431, __v_451, record) }; + let __v_458: G = __b2_out.0; + let __v_459: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_432, &__v_452) } else { bytes2_xor_split7_value(__v_432, __v_452, record) }; + let __v_460: G = __b2_out.0; + let __v_461: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_433, &__v_453) } else { bytes2_xor_split7_value(__v_433, __v_453, record) }; + let __v_462: G = __b2_out.0; + let __v_463: G = __b2_out.1; + let __v_464: G = (__v_456 + __v_459); + let __v_465: G = (__v_458 + __v_461); + let __v_466: G = (__v_460 + __v_463); + let __v_467: G = (__v_462 + __v_457); + let __u32_sum: u128 = u128::from(((__v_230.as_canonical_u64() << 0) | (__v_231.as_canonical_u64() << 8) | (__v_232.as_canonical_u64() << 16) | (__v_233.as_canonical_u64() << 24))) + u128::from(((__v_328.as_canonical_u64() << 0) | (__v_329.as_canonical_u64() << 8) | (__v_330.as_canonical_u64() << 16) | (__v_331.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_468: G = G::from_u8(__u32_bytes[0]); + let __v_469: G = G::from_u8(__u32_bytes[1]); + let __v_470: G = G::from_u8(__u32_bytes[2]); + let __v_471: G = G::from_u8(__u32_bytes[3]); + let __v_472: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_468; let __vj = __v_469; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_470; let __vj = __v_471; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_473: G = G::from_u64(1); + let __v_474: G = (__v_472 - __v_473); + let __v_475: G = G::from_u64(2); + let __v_476: G = (__v_472 - __v_475); + let __v_477: G = (__v_474 * __v_476); + let __v_478: G = (__v_472 * __v_477); + let __v_479: G = G::from_u64(0); + if (__v_478 != __v_479) { + return Err(ExecError::AssertEqMismatch { lhs: __v_478.as_canonical_u64(), rhs: __v_479.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_480: G = if unconstrained { Bytes2::xor(&__v_175, &__v_468) } else { bytes2_xor_value(__v_175, __v_468, record) }; + let __v_481: G = if unconstrained { Bytes2::xor(&__v_176, &__v_469) } else { bytes2_xor_value(__v_176, __v_469, record) }; + let __v_482: G = if unconstrained { Bytes2::xor(&__v_177, &__v_470) } else { bytes2_xor_value(__v_177, __v_470, record) }; + let __v_483: G = if unconstrained { Bytes2::xor(&__v_174, &__v_471) } else { bytes2_xor_value(__v_174, __v_471, record) }; + let __u32_sum: u128 = u128::from(((__v_382.as_canonical_u64() << 0) | (__v_383.as_canonical_u64() << 8) | (__v_384.as_canonical_u64() << 16) | (__v_385.as_canonical_u64() << 24))) + u128::from(((__v_482.as_canonical_u64() << 0) | (__v_483.as_canonical_u64() << 8) | (__v_480.as_canonical_u64() << 16) | (__v_481.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_484: G = G::from_u8(__u32_bytes[0]); + let __v_485: G = G::from_u8(__u32_bytes[1]); + let __v_486: G = G::from_u8(__u32_bytes[2]); + let __v_487: G = G::from_u8(__u32_bytes[3]); + let __v_488: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_484; let __vj = __v_485; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_486; let __vj = __v_487; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_489: G = (__v_488 * __v_488); + if (__v_489 != __v_488) { + return Err(ExecError::AssertEqMismatch { lhs: __v_489.as_canonical_u64(), rhs: __v_488.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_328, &__v_484) } else { bytes2_xor_split4_value(__v_328, __v_484, record) }; + let __v_490: G = __b2_out.0; + let __v_491: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_329, &__v_485) } else { bytes2_xor_split4_value(__v_329, __v_485, record) }; + let __v_492: G = __b2_out.0; + let __v_493: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_330, &__v_486) } else { bytes2_xor_split4_value(__v_330, __v_486, record) }; + let __v_494: G = __b2_out.0; + let __v_495: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_331, &__v_487) } else { bytes2_xor_split4_value(__v_331, __v_487, record) }; + let __v_496: G = __b2_out.0; + let __v_497: G = __b2_out.1; + let __v_498: G = (__v_492 + __v_495); + let __v_499: G = (__v_494 + __v_497); + let __v_500: G = (__v_496 + __v_491); + let __v_501: G = (__v_490 + __v_493); + let __u32_sum: u128 = u128::from(((__v_468.as_canonical_u64() << 0) | (__v_469.as_canonical_u64() << 8) | (__v_470.as_canonical_u64() << 16) | (__v_471.as_canonical_u64() << 24))) + u128::from(((__v_498.as_canonical_u64() << 0) | (__v_499.as_canonical_u64() << 8) | (__v_500.as_canonical_u64() << 16) | (__v_501.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_502: G = G::from_u8(__u32_bytes[0]); + let __v_503: G = G::from_u8(__u32_bytes[1]); + let __v_504: G = G::from_u8(__u32_bytes[2]); + let __v_505: G = G::from_u8(__u32_bytes[3]); + let __v_506: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_502; let __vj = __v_503; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_504; let __vj = __v_505; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_507: G = G::from_u64(1); + let __v_508: G = (__v_506 - __v_507); + let __v_509: G = G::from_u64(2); + let __v_510: G = (__v_506 - __v_509); + let __v_511: G = (__v_508 * __v_510); + let __v_512: G = (__v_506 * __v_511); + let __v_513: G = G::from_u64(0); + if (__v_512 != __v_513) { + return Err(ExecError::AssertEqMismatch { lhs: __v_512.as_canonical_u64(), rhs: __v_513.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_514: G = if unconstrained { Bytes2::xor(&__v_482, &__v_502) } else { bytes2_xor_value(__v_482, __v_502, record) }; + let __v_515: G = if unconstrained { Bytes2::xor(&__v_483, &__v_503) } else { bytes2_xor_value(__v_483, __v_503, record) }; + let __v_516: G = if unconstrained { Bytes2::xor(&__v_480, &__v_504) } else { bytes2_xor_value(__v_480, __v_504, record) }; + let __v_517: G = if unconstrained { Bytes2::xor(&__v_481, &__v_505) } else { bytes2_xor_value(__v_481, __v_505, record) }; + let __u32_sum: u128 = u128::from(((__v_484.as_canonical_u64() << 0) | (__v_485.as_canonical_u64() << 8) | (__v_486.as_canonical_u64() << 16) | (__v_487.as_canonical_u64() << 24))) + u128::from(((__v_515.as_canonical_u64() << 0) | (__v_516.as_canonical_u64() << 8) | (__v_517.as_canonical_u64() << 16) | (__v_514.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_518: G = G::from_u8(__u32_bytes[0]); + let __v_519: G = G::from_u8(__u32_bytes[1]); + let __v_520: G = G::from_u8(__u32_bytes[2]); + let __v_521: G = G::from_u8(__u32_bytes[3]); + let __v_522: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_518; let __vj = __v_519; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_520; let __vj = __v_521; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_523: G = (__v_522 * __v_522); + if (__v_523 != __v_522) { + return Err(ExecError::AssertEqMismatch { lhs: __v_523.as_canonical_u64(), rhs: __v_522.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_498, &__v_518) } else { bytes2_xor_split7_value(__v_498, __v_518, record) }; + let __v_524: G = __b2_out.0; + let __v_525: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_499, &__v_519) } else { bytes2_xor_split7_value(__v_499, __v_519, record) }; + let __v_526: G = __b2_out.0; + let __v_527: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_500, &__v_520) } else { bytes2_xor_split7_value(__v_500, __v_520, record) }; + let __v_528: G = __b2_out.0; + let __v_529: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_501, &__v_521) } else { bytes2_xor_split7_value(__v_501, __v_521, record) }; + let __v_530: G = __b2_out.0; + let __v_531: G = __b2_out.1; + let __v_532: G = (__v_524 + __v_527); + let __v_533: G = (__v_526 + __v_529); + let __v_534: G = (__v_528 + __v_531); + let __v_535: G = (__v_530 + __v_525); + let __u32_sum: u128 = u128::from(((__v_298.as_canonical_u64() << 0) | (__v_299.as_canonical_u64() << 8) | (__v_300.as_canonical_u64() << 16) | (__v_301.as_canonical_u64() << 24))) + u128::from(((__v_396.as_canonical_u64() << 0) | (__v_397.as_canonical_u64() << 8) | (__v_398.as_canonical_u64() << 16) | (__v_399.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_536: G = G::from_u8(__u32_bytes[0]); + let __v_537: G = G::from_u8(__u32_bytes[1]); + let __v_538: G = G::from_u8(__u32_bytes[2]); + let __v_539: G = G::from_u8(__u32_bytes[3]); + let __v_540: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_536; let __vj = __v_537; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_538; let __vj = __v_539; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_541: G = G::from_u64(1); + let __v_542: G = (__v_540 - __v_541); + let __v_543: G = G::from_u64(2); + let __v_544: G = (__v_540 - __v_543); + let __v_545: G = (__v_542 * __v_544); + let __v_546: G = (__v_540 * __v_545); + let __v_547: G = G::from_u64(0); + if (__v_546 != __v_547) { + return Err(ExecError::AssertEqMismatch { lhs: __v_546.as_canonical_u64(), rhs: __v_547.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_548: G = if unconstrained { Bytes2::xor(&__v_243, &__v_536) } else { bytes2_xor_value(__v_243, __v_536, record) }; + let __v_549: G = if unconstrained { Bytes2::xor(&__v_244, &__v_537) } else { bytes2_xor_value(__v_244, __v_537, record) }; + let __v_550: G = if unconstrained { Bytes2::xor(&__v_245, &__v_538) } else { bytes2_xor_value(__v_245, __v_538, record) }; + let __v_551: G = if unconstrained { Bytes2::xor(&__v_242, &__v_539) } else { bytes2_xor_value(__v_242, __v_539, record) }; + let __u32_sum: u128 = u128::from(((__v_178.as_canonical_u64() << 0) | (__v_179.as_canonical_u64() << 8) | (__v_180.as_canonical_u64() << 16) | (__v_181.as_canonical_u64() << 24))) + u128::from(((__v_550.as_canonical_u64() << 0) | (__v_551.as_canonical_u64() << 8) | (__v_548.as_canonical_u64() << 16) | (__v_549.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_552: G = G::from_u8(__u32_bytes[0]); + let __v_553: G = G::from_u8(__u32_bytes[1]); + let __v_554: G = G::from_u8(__u32_bytes[2]); + let __v_555: G = G::from_u8(__u32_bytes[3]); + let __v_556: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_552; let __vj = __v_553; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_554; let __vj = __v_555; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_557: G = (__v_556 * __v_556); + if (__v_557 != __v_556) { + return Err(ExecError::AssertEqMismatch { lhs: __v_557.as_canonical_u64(), rhs: __v_556.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_396, &__v_552) } else { bytes2_xor_split4_value(__v_396, __v_552, record) }; + let __v_558: G = __b2_out.0; + let __v_559: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_397, &__v_553) } else { bytes2_xor_split4_value(__v_397, __v_553, record) }; + let __v_560: G = __b2_out.0; + let __v_561: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_398, &__v_554) } else { bytes2_xor_split4_value(__v_398, __v_554, record) }; + let __v_562: G = __b2_out.0; + let __v_563: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_399, &__v_555) } else { bytes2_xor_split4_value(__v_399, __v_555, record) }; + let __v_564: G = __b2_out.0; + let __v_565: G = __b2_out.1; + let __v_566: G = (__v_560 + __v_563); + let __v_567: G = (__v_562 + __v_565); + let __v_568: G = (__v_564 + __v_559); + let __v_569: G = (__v_558 + __v_561); + let __u32_sum: u128 = u128::from(((__v_536.as_canonical_u64() << 0) | (__v_537.as_canonical_u64() << 8) | (__v_538.as_canonical_u64() << 16) | (__v_539.as_canonical_u64() << 24))) + u128::from(((__v_566.as_canonical_u64() << 0) | (__v_567.as_canonical_u64() << 8) | (__v_568.as_canonical_u64() << 16) | (__v_569.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_570: G = G::from_u8(__u32_bytes[0]); + let __v_571: G = G::from_u8(__u32_bytes[1]); + let __v_572: G = G::from_u8(__u32_bytes[2]); + let __v_573: G = G::from_u8(__u32_bytes[3]); + let __v_574: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_570; let __vj = __v_571; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_572; let __vj = __v_573; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_575: G = G::from_u64(1); + let __v_576: G = (__v_574 - __v_575); + let __v_577: G = G::from_u64(2); + let __v_578: G = (__v_574 - __v_577); + let __v_579: G = (__v_576 * __v_578); + let __v_580: G = (__v_574 * __v_579); + let __v_581: G = G::from_u64(0); + if (__v_580 != __v_581) { + return Err(ExecError::AssertEqMismatch { lhs: __v_580.as_canonical_u64(), rhs: __v_581.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_582: G = if unconstrained { Bytes2::xor(&__v_550, &__v_570) } else { bytes2_xor_value(__v_550, __v_570, record) }; + let __v_583: G = if unconstrained { Bytes2::xor(&__v_551, &__v_571) } else { bytes2_xor_value(__v_551, __v_571, record) }; + let __v_584: G = if unconstrained { Bytes2::xor(&__v_548, &__v_572) } else { bytes2_xor_value(__v_548, __v_572, record) }; + let __v_585: G = if unconstrained { Bytes2::xor(&__v_549, &__v_573) } else { bytes2_xor_value(__v_549, __v_573, record) }; + let __u32_sum: u128 = u128::from(((__v_552.as_canonical_u64() << 0) | (__v_553.as_canonical_u64() << 8) | (__v_554.as_canonical_u64() << 16) | (__v_555.as_canonical_u64() << 24))) + u128::from(((__v_583.as_canonical_u64() << 0) | (__v_584.as_canonical_u64() << 8) | (__v_585.as_canonical_u64() << 16) | (__v_582.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_586: G = G::from_u8(__u32_bytes[0]); + let __v_587: G = G::from_u8(__u32_bytes[1]); + let __v_588: G = G::from_u8(__u32_bytes[2]); + let __v_589: G = G::from_u8(__u32_bytes[3]); + let __v_590: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_586; let __vj = __v_587; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_588; let __vj = __v_589; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_591: G = (__v_590 * __v_590); + if (__v_591 != __v_590) { + return Err(ExecError::AssertEqMismatch { lhs: __v_591.as_canonical_u64(), rhs: __v_590.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_566, &__v_586) } else { bytes2_xor_split7_value(__v_566, __v_586, record) }; + let __v_592: G = __b2_out.0; + let __v_593: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_567, &__v_587) } else { bytes2_xor_split7_value(__v_567, __v_587, record) }; + let __v_594: G = __b2_out.0; + let __v_595: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_568, &__v_588) } else { bytes2_xor_split7_value(__v_568, __v_588, record) }; + let __v_596: G = __b2_out.0; + let __v_597: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_569, &__v_589) } else { bytes2_xor_split7_value(__v_569, __v_589, record) }; + let __v_598: G = __b2_out.0; + let __v_599: G = __b2_out.1; + let __v_600: G = (__v_592 + __v_595); + let __v_601: G = (__v_594 + __v_597); + let __v_602: G = (__v_596 + __v_599); + let __v_603: G = (__v_598 + __v_593); + let __u32_sum: u128 = u128::from(((__v_366.as_canonical_u64() << 0) | (__v_367.as_canonical_u64() << 8) | (__v_368.as_canonical_u64() << 16) | (__v_369.as_canonical_u64() << 24))) + u128::from(((__v_192.as_canonical_u64() << 0) | (__v_193.as_canonical_u64() << 8) | (__v_194.as_canonical_u64() << 16) | (__v_195.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_604: G = G::from_u8(__u32_bytes[0]); + let __v_605: G = G::from_u8(__u32_bytes[1]); + let __v_606: G = G::from_u8(__u32_bytes[2]); + let __v_607: G = G::from_u8(__u32_bytes[3]); + let __v_608: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_604; let __vj = __v_605; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_606; let __vj = __v_607; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_609: G = G::from_u64(1); + let __v_610: G = (__v_608 - __v_609); + let __v_611: G = G::from_u64(2); + let __v_612: G = (__v_608 - __v_611); + let __v_613: G = (__v_610 * __v_612); + let __v_614: G = (__v_608 * __v_613); + let __v_615: G = G::from_u64(0); + if (__v_614 != __v_615) { + return Err(ExecError::AssertEqMismatch { lhs: __v_614.as_canonical_u64(), rhs: __v_615.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_616: G = if unconstrained { Bytes2::xor(&__v_311, &__v_604) } else { bytes2_xor_value(__v_311, __v_604, record) }; + let __v_617: G = if unconstrained { Bytes2::xor(&__v_312, &__v_605) } else { bytes2_xor_value(__v_312, __v_605, record) }; + let __v_618: G = if unconstrained { Bytes2::xor(&__v_313, &__v_606) } else { bytes2_xor_value(__v_313, __v_606, record) }; + let __v_619: G = if unconstrained { Bytes2::xor(&__v_310, &__v_607) } else { bytes2_xor_value(__v_310, __v_607, record) }; + let __u32_sum: u128 = u128::from(((__v_246.as_canonical_u64() << 0) | (__v_247.as_canonical_u64() << 8) | (__v_248.as_canonical_u64() << 16) | (__v_249.as_canonical_u64() << 24))) + u128::from(((__v_618.as_canonical_u64() << 0) | (__v_619.as_canonical_u64() << 8) | (__v_616.as_canonical_u64() << 16) | (__v_617.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_620: G = G::from_u8(__u32_bytes[0]); + let __v_621: G = G::from_u8(__u32_bytes[1]); + let __v_622: G = G::from_u8(__u32_bytes[2]); + let __v_623: G = G::from_u8(__u32_bytes[3]); + let __v_624: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_620; let __vj = __v_621; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_622; let __vj = __v_623; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_625: G = (__v_624 * __v_624); + if (__v_625 != __v_624) { + return Err(ExecError::AssertEqMismatch { lhs: __v_625.as_canonical_u64(), rhs: __v_624.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_192, &__v_620) } else { bytes2_xor_split4_value(__v_192, __v_620, record) }; + let __v_626: G = __b2_out.0; + let __v_627: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_193, &__v_621) } else { bytes2_xor_split4_value(__v_193, __v_621, record) }; + let __v_628: G = __b2_out.0; + let __v_629: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_194, &__v_622) } else { bytes2_xor_split4_value(__v_194, __v_622, record) }; + let __v_630: G = __b2_out.0; + let __v_631: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_195, &__v_623) } else { bytes2_xor_split4_value(__v_195, __v_623, record) }; + let __v_632: G = __b2_out.0; + let __v_633: G = __b2_out.1; + let __v_634: G = (__v_628 + __v_631); + let __v_635: G = (__v_630 + __v_633); + let __v_636: G = (__v_632 + __v_627); + let __v_637: G = (__v_626 + __v_629); + let __u32_sum: u128 = u128::from(((__v_604.as_canonical_u64() << 0) | (__v_605.as_canonical_u64() << 8) | (__v_606.as_canonical_u64() << 16) | (__v_607.as_canonical_u64() << 24))) + u128::from(((__v_634.as_canonical_u64() << 0) | (__v_635.as_canonical_u64() << 8) | (__v_636.as_canonical_u64() << 16) | (__v_637.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_638: G = G::from_u8(__u32_bytes[0]); + let __v_639: G = G::from_u8(__u32_bytes[1]); + let __v_640: G = G::from_u8(__u32_bytes[2]); + let __v_641: G = G::from_u8(__u32_bytes[3]); + let __v_642: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_638; let __vj = __v_639; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_640; let __vj = __v_641; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_643: G = G::from_u64(1); + let __v_644: G = (__v_642 - __v_643); + let __v_645: G = G::from_u64(2); + let __v_646: G = (__v_642 - __v_645); + let __v_647: G = (__v_644 * __v_646); + let __v_648: G = (__v_642 * __v_647); + let __v_649: G = G::from_u64(0); + if (__v_648 != __v_649) { + return Err(ExecError::AssertEqMismatch { lhs: __v_648.as_canonical_u64(), rhs: __v_649.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_650: G = if unconstrained { Bytes2::xor(&__v_618, &__v_638) } else { bytes2_xor_value(__v_618, __v_638, record) }; + let __v_651: G = if unconstrained { Bytes2::xor(&__v_619, &__v_639) } else { bytes2_xor_value(__v_619, __v_639, record) }; + let __v_652: G = if unconstrained { Bytes2::xor(&__v_616, &__v_640) } else { bytes2_xor_value(__v_616, __v_640, record) }; + let __v_653: G = if unconstrained { Bytes2::xor(&__v_617, &__v_641) } else { bytes2_xor_value(__v_617, __v_641, record) }; + let __u32_sum: u128 = u128::from(((__v_620.as_canonical_u64() << 0) | (__v_621.as_canonical_u64() << 8) | (__v_622.as_canonical_u64() << 16) | (__v_623.as_canonical_u64() << 24))) + u128::from(((__v_651.as_canonical_u64() << 0) | (__v_652.as_canonical_u64() << 8) | (__v_653.as_canonical_u64() << 16) | (__v_650.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_654: G = G::from_u8(__u32_bytes[0]); + let __v_655: G = G::from_u8(__u32_bytes[1]); + let __v_656: G = G::from_u8(__u32_bytes[2]); + let __v_657: G = G::from_u8(__u32_bytes[3]); + let __v_658: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_654; let __vj = __v_655; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_656; let __vj = __v_657; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_659: G = (__v_658 * __v_658); + if (__v_659 != __v_658) { + return Err(ExecError::AssertEqMismatch { lhs: __v_659.as_canonical_u64(), rhs: __v_658.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_634, &__v_654) } else { bytes2_xor_split7_value(__v_634, __v_654, record) }; + let __v_660: G = __b2_out.0; + let __v_661: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_635, &__v_655) } else { bytes2_xor_split7_value(__v_635, __v_655, record) }; + let __v_662: G = __b2_out.0; + let __v_663: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_636, &__v_656) } else { bytes2_xor_split7_value(__v_636, __v_656, record) }; + let __v_664: G = __b2_out.0; + let __v_665: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_637, &__v_657) } else { bytes2_xor_split7_value(__v_637, __v_657, record) }; + let __v_666: G = __b2_out.0; + let __v_667: G = __b2_out.1; + let __v_668: G = (__v_660 + __v_663); + let __v_669: G = (__v_662 + __v_665); + let __v_670: G = (__v_664 + __v_667); + let __v_671: G = (__v_666 + __v_661); + let __u32_sum: u128 = u128::from(((__v_434.as_canonical_u64() << 0) | (__v_435.as_canonical_u64() << 8) | (__v_436.as_canonical_u64() << 16) | (__v_437.as_canonical_u64() << 24))) + u128::from(((__v_668.as_canonical_u64() << 0) | (__v_669.as_canonical_u64() << 8) | (__v_670.as_canonical_u64() << 16) | (__v_671.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_672: G = G::from_u8(__u32_bytes[0]); + let __v_673: G = G::from_u8(__u32_bytes[1]); + let __v_674: G = G::from_u8(__u32_bytes[2]); + let __v_675: G = G::from_u8(__u32_bytes[3]); + let __v_676: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_672; let __vj = __v_673; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_674; let __vj = __v_675; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_677: G = G::from_u64(1); + let __v_678: G = (__v_676 - __v_677); + let __v_679: G = G::from_u64(2); + let __v_680: G = (__v_676 - __v_679); + let __v_681: G = (__v_678 * __v_680); + let __v_682: G = (__v_676 * __v_681); + let __v_683: G = G::from_u64(0); + if (__v_682 != __v_683) { + return Err(ExecError::AssertEqMismatch { lhs: __v_682.as_canonical_u64(), rhs: __v_683.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_684: G = if unconstrained { Bytes2::xor(&__v_515, &__v_672) } else { bytes2_xor_value(__v_515, __v_672, record) }; + let __v_685: G = if unconstrained { Bytes2::xor(&__v_516, &__v_673) } else { bytes2_xor_value(__v_516, __v_673, record) }; + let __v_686: G = if unconstrained { Bytes2::xor(&__v_517, &__v_674) } else { bytes2_xor_value(__v_517, __v_674, record) }; + let __v_687: G = if unconstrained { Bytes2::xor(&__v_514, &__v_675) } else { bytes2_xor_value(__v_514, __v_675, record) }; + let __u32_sum: u128 = u128::from(((__v_586.as_canonical_u64() << 0) | (__v_587.as_canonical_u64() << 8) | (__v_588.as_canonical_u64() << 16) | (__v_589.as_canonical_u64() << 24))) + u128::from(((__v_686.as_canonical_u64() << 0) | (__v_687.as_canonical_u64() << 8) | (__v_684.as_canonical_u64() << 16) | (__v_685.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_688: G = G::from_u8(__u32_bytes[0]); + let __v_689: G = G::from_u8(__u32_bytes[1]); + let __v_690: G = G::from_u8(__u32_bytes[2]); + let __v_691: G = G::from_u8(__u32_bytes[3]); + let __v_692: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_688; let __vj = __v_689; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_690; let __vj = __v_691; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_693: G = (__v_692 * __v_692); + if (__v_693 != __v_692) { + return Err(ExecError::AssertEqMismatch { lhs: __v_693.as_canonical_u64(), rhs: __v_692.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_668, &__v_688) } else { bytes2_xor_split4_value(__v_668, __v_688, record) }; + let __v_694: G = __b2_out.0; + let __v_695: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_669, &__v_689) } else { bytes2_xor_split4_value(__v_669, __v_689, record) }; + let __v_696: G = __b2_out.0; + let __v_697: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_670, &__v_690) } else { bytes2_xor_split4_value(__v_670, __v_690, record) }; + let __v_698: G = __b2_out.0; + let __v_699: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_671, &__v_691) } else { bytes2_xor_split4_value(__v_671, __v_691, record) }; + let __v_700: G = __b2_out.0; + let __v_701: G = __b2_out.1; + let __v_702: G = (__v_696 + __v_699); + let __v_703: G = (__v_698 + __v_701); + let __v_704: G = (__v_700 + __v_695); + let __v_705: G = (__v_694 + __v_697); + let __u32_sum: u128 = u128::from(((__v_672.as_canonical_u64() << 0) | (__v_673.as_canonical_u64() << 8) | (__v_674.as_canonical_u64() << 16) | (__v_675.as_canonical_u64() << 24))) + u128::from(((__v_702.as_canonical_u64() << 0) | (__v_703.as_canonical_u64() << 8) | (__v_704.as_canonical_u64() << 16) | (__v_705.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_706: G = G::from_u8(__u32_bytes[0]); + let __v_707: G = G::from_u8(__u32_bytes[1]); + let __v_708: G = G::from_u8(__u32_bytes[2]); + let __v_709: G = G::from_u8(__u32_bytes[3]); + let __v_710: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_706; let __vj = __v_707; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_708; let __vj = __v_709; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_711: G = G::from_u64(1); + let __v_712: G = (__v_710 - __v_711); + let __v_713: G = G::from_u64(2); + let __v_714: G = (__v_710 - __v_713); + let __v_715: G = (__v_712 * __v_714); + let __v_716: G = (__v_710 * __v_715); + let __v_717: G = G::from_u64(0); + if (__v_716 != __v_717) { + return Err(ExecError::AssertEqMismatch { lhs: __v_716.as_canonical_u64(), rhs: __v_717.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_718: G = if unconstrained { Bytes2::xor(&__v_686, &__v_706) } else { bytes2_xor_value(__v_686, __v_706, record) }; + let __v_719: G = if unconstrained { Bytes2::xor(&__v_687, &__v_707) } else { bytes2_xor_value(__v_687, __v_707, record) }; + let __v_720: G = if unconstrained { Bytes2::xor(&__v_684, &__v_708) } else { bytes2_xor_value(__v_684, __v_708, record) }; + let __v_721: G = if unconstrained { Bytes2::xor(&__v_685, &__v_709) } else { bytes2_xor_value(__v_685, __v_709, record) }; + let __u32_sum: u128 = u128::from(((__v_688.as_canonical_u64() << 0) | (__v_689.as_canonical_u64() << 8) | (__v_690.as_canonical_u64() << 16) | (__v_691.as_canonical_u64() << 24))) + u128::from(((__v_719.as_canonical_u64() << 0) | (__v_720.as_canonical_u64() << 8) | (__v_721.as_canonical_u64() << 16) | (__v_718.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_722: G = G::from_u8(__u32_bytes[0]); + let __v_723: G = G::from_u8(__u32_bytes[1]); + let __v_724: G = G::from_u8(__u32_bytes[2]); + let __v_725: G = G::from_u8(__u32_bytes[3]); + let __v_726: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_722; let __vj = __v_723; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_724; let __vj = __v_725; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_727: G = (__v_726 * __v_726); + if (__v_727 != __v_726) { + return Err(ExecError::AssertEqMismatch { lhs: __v_727.as_canonical_u64(), rhs: __v_726.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_702, &__v_722) } else { bytes2_xor_split7_value(__v_702, __v_722, record) }; + let __v_728: G = __b2_out.0; + let __v_729: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_703, &__v_723) } else { bytes2_xor_split7_value(__v_703, __v_723, record) }; + let __v_730: G = __b2_out.0; + let __v_731: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_704, &__v_724) } else { bytes2_xor_split7_value(__v_704, __v_724, record) }; + let __v_732: G = __b2_out.0; + let __v_733: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_705, &__v_725) } else { bytes2_xor_split7_value(__v_705, __v_725, record) }; + let __v_734: G = __b2_out.0; + let __v_735: G = __b2_out.1; + let __v_736: G = (__v_728 + __v_731); + let __v_737: G = (__v_730 + __v_733); + let __v_738: G = (__v_732 + __v_735); + let __v_739: G = (__v_734 + __v_729); + let __u32_sum: u128 = u128::from(((__v_502.as_canonical_u64() << 0) | (__v_503.as_canonical_u64() << 8) | (__v_504.as_canonical_u64() << 16) | (__v_505.as_canonical_u64() << 24))) + u128::from(((__v_464.as_canonical_u64() << 0) | (__v_465.as_canonical_u64() << 8) | (__v_466.as_canonical_u64() << 16) | (__v_467.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_740: G = G::from_u8(__u32_bytes[0]); + let __v_741: G = G::from_u8(__u32_bytes[1]); + let __v_742: G = G::from_u8(__u32_bytes[2]); + let __v_743: G = G::from_u8(__u32_bytes[3]); + let __v_744: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_740; let __vj = __v_741; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_742; let __vj = __v_743; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_745: G = G::from_u64(1); + let __v_746: G = (__v_744 - __v_745); + let __v_747: G = G::from_u64(2); + let __v_748: G = (__v_744 - __v_747); + let __v_749: G = (__v_746 * __v_748); + let __v_750: G = (__v_744 * __v_749); + let __v_751: G = G::from_u64(0); + if (__v_750 != __v_751) { + return Err(ExecError::AssertEqMismatch { lhs: __v_750.as_canonical_u64(), rhs: __v_751.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_752: G = if unconstrained { Bytes2::xor(&__v_583, &__v_740) } else { bytes2_xor_value(__v_583, __v_740, record) }; + let __v_753: G = if unconstrained { Bytes2::xor(&__v_584, &__v_741) } else { bytes2_xor_value(__v_584, __v_741, record) }; + let __v_754: G = if unconstrained { Bytes2::xor(&__v_585, &__v_742) } else { bytes2_xor_value(__v_585, __v_742, record) }; + let __v_755: G = if unconstrained { Bytes2::xor(&__v_582, &__v_743) } else { bytes2_xor_value(__v_582, __v_743, record) }; + let __u32_sum: u128 = u128::from(((__v_654.as_canonical_u64() << 0) | (__v_655.as_canonical_u64() << 8) | (__v_656.as_canonical_u64() << 16) | (__v_657.as_canonical_u64() << 24))) + u128::from(((__v_754.as_canonical_u64() << 0) | (__v_755.as_canonical_u64() << 8) | (__v_752.as_canonical_u64() << 16) | (__v_753.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_756: G = G::from_u8(__u32_bytes[0]); + let __v_757: G = G::from_u8(__u32_bytes[1]); + let __v_758: G = G::from_u8(__u32_bytes[2]); + let __v_759: G = G::from_u8(__u32_bytes[3]); + let __v_760: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_756; let __vj = __v_757; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_758; let __vj = __v_759; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_761: G = (__v_760 * __v_760); + if (__v_761 != __v_760) { + return Err(ExecError::AssertEqMismatch { lhs: __v_761.as_canonical_u64(), rhs: __v_760.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_464, &__v_756) } else { bytes2_xor_split4_value(__v_464, __v_756, record) }; + let __v_762: G = __b2_out.0; + let __v_763: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_465, &__v_757) } else { bytes2_xor_split4_value(__v_465, __v_757, record) }; + let __v_764: G = __b2_out.0; + let __v_765: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_466, &__v_758) } else { bytes2_xor_split4_value(__v_466, __v_758, record) }; + let __v_766: G = __b2_out.0; + let __v_767: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_467, &__v_759) } else { bytes2_xor_split4_value(__v_467, __v_759, record) }; + let __v_768: G = __b2_out.0; + let __v_769: G = __b2_out.1; + let __v_770: G = (__v_764 + __v_767); + let __v_771: G = (__v_766 + __v_769); + let __v_772: G = (__v_768 + __v_763); + let __v_773: G = (__v_762 + __v_765); + let __u32_sum: u128 = u128::from(((__v_740.as_canonical_u64() << 0) | (__v_741.as_canonical_u64() << 8) | (__v_742.as_canonical_u64() << 16) | (__v_743.as_canonical_u64() << 24))) + u128::from(((__v_770.as_canonical_u64() << 0) | (__v_771.as_canonical_u64() << 8) | (__v_772.as_canonical_u64() << 16) | (__v_773.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_774: G = G::from_u8(__u32_bytes[0]); + let __v_775: G = G::from_u8(__u32_bytes[1]); + let __v_776: G = G::from_u8(__u32_bytes[2]); + let __v_777: G = G::from_u8(__u32_bytes[3]); + let __v_778: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_774; let __vj = __v_775; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_776; let __vj = __v_777; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_779: G = G::from_u64(1); + let __v_780: G = (__v_778 - __v_779); + let __v_781: G = G::from_u64(2); + let __v_782: G = (__v_778 - __v_781); + let __v_783: G = (__v_780 * __v_782); + let __v_784: G = (__v_778 * __v_783); + let __v_785: G = G::from_u64(0); + if (__v_784 != __v_785) { + return Err(ExecError::AssertEqMismatch { lhs: __v_784.as_canonical_u64(), rhs: __v_785.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_786: G = if unconstrained { Bytes2::xor(&__v_754, &__v_774) } else { bytes2_xor_value(__v_754, __v_774, record) }; + let __v_787: G = if unconstrained { Bytes2::xor(&__v_755, &__v_775) } else { bytes2_xor_value(__v_755, __v_775, record) }; + let __v_788: G = if unconstrained { Bytes2::xor(&__v_752, &__v_776) } else { bytes2_xor_value(__v_752, __v_776, record) }; + let __v_789: G = if unconstrained { Bytes2::xor(&__v_753, &__v_777) } else { bytes2_xor_value(__v_753, __v_777, record) }; + let __u32_sum: u128 = u128::from(((__v_756.as_canonical_u64() << 0) | (__v_757.as_canonical_u64() << 8) | (__v_758.as_canonical_u64() << 16) | (__v_759.as_canonical_u64() << 24))) + u128::from(((__v_787.as_canonical_u64() << 0) | (__v_788.as_canonical_u64() << 8) | (__v_789.as_canonical_u64() << 16) | (__v_786.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_790: G = G::from_u8(__u32_bytes[0]); + let __v_791: G = G::from_u8(__u32_bytes[1]); + let __v_792: G = G::from_u8(__u32_bytes[2]); + let __v_793: G = G::from_u8(__u32_bytes[3]); + let __v_794: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_790; let __vj = __v_791; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_792; let __vj = __v_793; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_795: G = (__v_794 * __v_794); + if (__v_795 != __v_794) { + return Err(ExecError::AssertEqMismatch { lhs: __v_795.as_canonical_u64(), rhs: __v_794.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_770, &__v_790) } else { bytes2_xor_split7_value(__v_770, __v_790, record) }; + let __v_796: G = __b2_out.0; + let __v_797: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_771, &__v_791) } else { bytes2_xor_split7_value(__v_771, __v_791, record) }; + let __v_798: G = __b2_out.0; + let __v_799: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_772, &__v_792) } else { bytes2_xor_split7_value(__v_772, __v_792, record) }; + let __v_800: G = __b2_out.0; + let __v_801: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_773, &__v_793) } else { bytes2_xor_split7_value(__v_773, __v_793, record) }; + let __v_802: G = __b2_out.0; + let __v_803: G = __b2_out.1; + let __v_804: G = (__v_796 + __v_799); + let __v_805: G = (__v_798 + __v_801); + let __v_806: G = (__v_800 + __v_803); + let __v_807: G = (__v_802 + __v_797); + let __u32_sum: u128 = u128::from(((__v_570.as_canonical_u64() << 0) | (__v_571.as_canonical_u64() << 8) | (__v_572.as_canonical_u64() << 16) | (__v_573.as_canonical_u64() << 24))) + u128::from(((__v_532.as_canonical_u64() << 0) | (__v_533.as_canonical_u64() << 8) | (__v_534.as_canonical_u64() << 16) | (__v_535.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_808: G = G::from_u8(__u32_bytes[0]); + let __v_809: G = G::from_u8(__u32_bytes[1]); + let __v_810: G = G::from_u8(__u32_bytes[2]); + let __v_811: G = G::from_u8(__u32_bytes[3]); + let __v_812: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_808; let __vj = __v_809; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_810; let __vj = __v_811; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_813: G = G::from_u64(1); + let __v_814: G = (__v_812 - __v_813); + let __v_815: G = G::from_u64(2); + let __v_816: G = (__v_812 - __v_815); + let __v_817: G = (__v_814 * __v_816); + let __v_818: G = (__v_812 * __v_817); + let __v_819: G = G::from_u64(0); + if (__v_818 != __v_819) { + return Err(ExecError::AssertEqMismatch { lhs: __v_818.as_canonical_u64(), rhs: __v_819.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_820: G = if unconstrained { Bytes2::xor(&__v_651, &__v_808) } else { bytes2_xor_value(__v_651, __v_808, record) }; + let __v_821: G = if unconstrained { Bytes2::xor(&__v_652, &__v_809) } else { bytes2_xor_value(__v_652, __v_809, record) }; + let __v_822: G = if unconstrained { Bytes2::xor(&__v_653, &__v_810) } else { bytes2_xor_value(__v_653, __v_810, record) }; + let __v_823: G = if unconstrained { Bytes2::xor(&__v_650, &__v_811) } else { bytes2_xor_value(__v_650, __v_811, record) }; + let __u32_sum: u128 = u128::from(((__v_450.as_canonical_u64() << 0) | (__v_451.as_canonical_u64() << 8) | (__v_452.as_canonical_u64() << 16) | (__v_453.as_canonical_u64() << 24))) + u128::from(((__v_822.as_canonical_u64() << 0) | (__v_823.as_canonical_u64() << 8) | (__v_820.as_canonical_u64() << 16) | (__v_821.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_824: G = G::from_u8(__u32_bytes[0]); + let __v_825: G = G::from_u8(__u32_bytes[1]); + let __v_826: G = G::from_u8(__u32_bytes[2]); + let __v_827: G = G::from_u8(__u32_bytes[3]); + let __v_828: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_824; let __vj = __v_825; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_826; let __vj = __v_827; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_829: G = (__v_828 * __v_828); + if (__v_829 != __v_828) { + return Err(ExecError::AssertEqMismatch { lhs: __v_829.as_canonical_u64(), rhs: __v_828.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_532, &__v_824) } else { bytes2_xor_split4_value(__v_532, __v_824, record) }; + let __v_830: G = __b2_out.0; + let __v_831: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_533, &__v_825) } else { bytes2_xor_split4_value(__v_533, __v_825, record) }; + let __v_832: G = __b2_out.0; + let __v_833: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_534, &__v_826) } else { bytes2_xor_split4_value(__v_534, __v_826, record) }; + let __v_834: G = __b2_out.0; + let __v_835: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_535, &__v_827) } else { bytes2_xor_split4_value(__v_535, __v_827, record) }; + let __v_836: G = __b2_out.0; + let __v_837: G = __b2_out.1; + let __v_838: G = (__v_832 + __v_835); + let __v_839: G = (__v_834 + __v_837); + let __v_840: G = (__v_836 + __v_831); + let __v_841: G = (__v_830 + __v_833); + let __u32_sum: u128 = u128::from(((__v_808.as_canonical_u64() << 0) | (__v_809.as_canonical_u64() << 8) | (__v_810.as_canonical_u64() << 16) | (__v_811.as_canonical_u64() << 24))) + u128::from(((__v_838.as_canonical_u64() << 0) | (__v_839.as_canonical_u64() << 8) | (__v_840.as_canonical_u64() << 16) | (__v_841.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_842: G = G::from_u8(__u32_bytes[0]); + let __v_843: G = G::from_u8(__u32_bytes[1]); + let __v_844: G = G::from_u8(__u32_bytes[2]); + let __v_845: G = G::from_u8(__u32_bytes[3]); + let __v_846: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_842; let __vj = __v_843; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_844; let __vj = __v_845; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_847: G = G::from_u64(1); + let __v_848: G = (__v_846 - __v_847); + let __v_849: G = G::from_u64(2); + let __v_850: G = (__v_846 - __v_849); + let __v_851: G = (__v_848 * __v_850); + let __v_852: G = (__v_846 * __v_851); + let __v_853: G = G::from_u64(0); + if (__v_852 != __v_853) { + return Err(ExecError::AssertEqMismatch { lhs: __v_852.as_canonical_u64(), rhs: __v_853.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_854: G = if unconstrained { Bytes2::xor(&__v_822, &__v_842) } else { bytes2_xor_value(__v_822, __v_842, record) }; + let __v_855: G = if unconstrained { Bytes2::xor(&__v_823, &__v_843) } else { bytes2_xor_value(__v_823, __v_843, record) }; + let __v_856: G = if unconstrained { Bytes2::xor(&__v_820, &__v_844) } else { bytes2_xor_value(__v_820, __v_844, record) }; + let __v_857: G = if unconstrained { Bytes2::xor(&__v_821, &__v_845) } else { bytes2_xor_value(__v_821, __v_845, record) }; + let __u32_sum: u128 = u128::from(((__v_824.as_canonical_u64() << 0) | (__v_825.as_canonical_u64() << 8) | (__v_826.as_canonical_u64() << 16) | (__v_827.as_canonical_u64() << 24))) + u128::from(((__v_855.as_canonical_u64() << 0) | (__v_856.as_canonical_u64() << 8) | (__v_857.as_canonical_u64() << 16) | (__v_854.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_858: G = G::from_u8(__u32_bytes[0]); + let __v_859: G = G::from_u8(__u32_bytes[1]); + let __v_860: G = G::from_u8(__u32_bytes[2]); + let __v_861: G = G::from_u8(__u32_bytes[3]); + let __v_862: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_858; let __vj = __v_859; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_860; let __vj = __v_861; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_863: G = (__v_862 * __v_862); + if (__v_863 != __v_862) { + return Err(ExecError::AssertEqMismatch { lhs: __v_863.as_canonical_u64(), rhs: __v_862.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_838, &__v_858) } else { bytes2_xor_split7_value(__v_838, __v_858, record) }; + let __v_864: G = __b2_out.0; + let __v_865: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_839, &__v_859) } else { bytes2_xor_split7_value(__v_839, __v_859, record) }; + let __v_866: G = __b2_out.0; + let __v_867: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_840, &__v_860) } else { bytes2_xor_split7_value(__v_840, __v_860, record) }; + let __v_868: G = __b2_out.0; + let __v_869: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_841, &__v_861) } else { bytes2_xor_split7_value(__v_841, __v_861, record) }; + let __v_870: G = __b2_out.0; + let __v_871: G = __b2_out.1; + let __v_872: G = (__v_864 + __v_867); + let __v_873: G = (__v_866 + __v_869); + let __v_874: G = (__v_868 + __v_871); + let __v_875: G = (__v_870 + __v_865); + let __u32_sum: u128 = u128::from(((__v_638.as_canonical_u64() << 0) | (__v_639.as_canonical_u64() << 8) | (__v_640.as_canonical_u64() << 16) | (__v_641.as_canonical_u64() << 24))) + u128::from(((__v_600.as_canonical_u64() << 0) | (__v_601.as_canonical_u64() << 8) | (__v_602.as_canonical_u64() << 16) | (__v_603.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_876: G = G::from_u8(__u32_bytes[0]); + let __v_877: G = G::from_u8(__u32_bytes[1]); + let __v_878: G = G::from_u8(__u32_bytes[2]); + let __v_879: G = G::from_u8(__u32_bytes[3]); + let __v_880: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_876; let __vj = __v_877; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_878; let __vj = __v_879; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_881: G = G::from_u64(1); + let __v_882: G = (__v_880 - __v_881); + let __v_883: G = G::from_u64(2); + let __v_884: G = (__v_880 - __v_883); + let __v_885: G = (__v_882 * __v_884); + let __v_886: G = (__v_880 * __v_885); + let __v_887: G = G::from_u64(0); + if (__v_886 != __v_887) { + return Err(ExecError::AssertEqMismatch { lhs: __v_886.as_canonical_u64(), rhs: __v_887.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_888: G = if unconstrained { Bytes2::xor(&__v_447, &__v_876) } else { bytes2_xor_value(__v_447, __v_876, record) }; + let __v_889: G = if unconstrained { Bytes2::xor(&__v_448, &__v_877) } else { bytes2_xor_value(__v_448, __v_877, record) }; + let __v_890: G = if unconstrained { Bytes2::xor(&__v_449, &__v_878) } else { bytes2_xor_value(__v_449, __v_878, record) }; + let __v_891: G = if unconstrained { Bytes2::xor(&__v_446, &__v_879) } else { bytes2_xor_value(__v_446, __v_879, record) }; + let __u32_sum: u128 = u128::from(((__v_518.as_canonical_u64() << 0) | (__v_519.as_canonical_u64() << 8) | (__v_520.as_canonical_u64() << 16) | (__v_521.as_canonical_u64() << 24))) + u128::from(((__v_890.as_canonical_u64() << 0) | (__v_891.as_canonical_u64() << 8) | (__v_888.as_canonical_u64() << 16) | (__v_889.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_892: G = G::from_u8(__u32_bytes[0]); + let __v_893: G = G::from_u8(__u32_bytes[1]); + let __v_894: G = G::from_u8(__u32_bytes[2]); + let __v_895: G = G::from_u8(__u32_bytes[3]); + let __v_896: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_892; let __vj = __v_893; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_894; let __vj = __v_895; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_897: G = (__v_896 * __v_896); + if (__v_897 != __v_896) { + return Err(ExecError::AssertEqMismatch { lhs: __v_897.as_canonical_u64(), rhs: __v_896.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_600, &__v_892) } else { bytes2_xor_split4_value(__v_600, __v_892, record) }; + let __v_898: G = __b2_out.0; + let __v_899: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_601, &__v_893) } else { bytes2_xor_split4_value(__v_601, __v_893, record) }; + let __v_900: G = __b2_out.0; + let __v_901: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_602, &__v_894) } else { bytes2_xor_split4_value(__v_602, __v_894, record) }; + let __v_902: G = __b2_out.0; + let __v_903: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_603, &__v_895) } else { bytes2_xor_split4_value(__v_603, __v_895, record) }; + let __v_904: G = __b2_out.0; + let __v_905: G = __b2_out.1; + let __v_906: G = (__v_900 + __v_903); + let __v_907: G = (__v_902 + __v_905); + let __v_908: G = (__v_904 + __v_899); + let __v_909: G = (__v_898 + __v_901); + let __u32_sum: u128 = u128::from(((__v_876.as_canonical_u64() << 0) | (__v_877.as_canonical_u64() << 8) | (__v_878.as_canonical_u64() << 16) | (__v_879.as_canonical_u64() << 24))) + u128::from(((__v_906.as_canonical_u64() << 0) | (__v_907.as_canonical_u64() << 8) | (__v_908.as_canonical_u64() << 16) | (__v_909.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_910: G = G::from_u8(__u32_bytes[0]); + let __v_911: G = G::from_u8(__u32_bytes[1]); + let __v_912: G = G::from_u8(__u32_bytes[2]); + let __v_913: G = G::from_u8(__u32_bytes[3]); + let __v_914: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_910; let __vj = __v_911; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_912; let __vj = __v_913; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_915: G = G::from_u64(1); + let __v_916: G = (__v_914 - __v_915); + let __v_917: G = G::from_u64(2); + let __v_918: G = (__v_914 - __v_917); + let __v_919: G = (__v_916 * __v_918); + let __v_920: G = (__v_914 * __v_919); + let __v_921: G = G::from_u64(0); + if (__v_920 != __v_921) { + return Err(ExecError::AssertEqMismatch { lhs: __v_920.as_canonical_u64(), rhs: __v_921.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_922: G = if unconstrained { Bytes2::xor(&__v_890, &__v_910) } else { bytes2_xor_value(__v_890, __v_910, record) }; + let __v_923: G = if unconstrained { Bytes2::xor(&__v_891, &__v_911) } else { bytes2_xor_value(__v_891, __v_911, record) }; + let __v_924: G = if unconstrained { Bytes2::xor(&__v_888, &__v_912) } else { bytes2_xor_value(__v_888, __v_912, record) }; + let __v_925: G = if unconstrained { Bytes2::xor(&__v_889, &__v_913) } else { bytes2_xor_value(__v_889, __v_913, record) }; + let __u32_sum: u128 = u128::from(((__v_892.as_canonical_u64() << 0) | (__v_893.as_canonical_u64() << 8) | (__v_894.as_canonical_u64() << 16) | (__v_895.as_canonical_u64() << 24))) + u128::from(((__v_923.as_canonical_u64() << 0) | (__v_924.as_canonical_u64() << 8) | (__v_925.as_canonical_u64() << 16) | (__v_922.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_926: G = G::from_u8(__u32_bytes[0]); + let __v_927: G = G::from_u8(__u32_bytes[1]); + let __v_928: G = G::from_u8(__u32_bytes[2]); + let __v_929: G = G::from_u8(__u32_bytes[3]); + let __v_930: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_926; let __vj = __v_927; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_928; let __vj = __v_929; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_931: G = (__v_930 * __v_930); + if (__v_931 != __v_930) { + return Err(ExecError::AssertEqMismatch { lhs: __v_931.as_canonical_u64(), rhs: __v_930.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_906, &__v_926) } else { bytes2_xor_split7_value(__v_906, __v_926, record) }; + let __v_932: G = __b2_out.0; + let __v_933: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_907, &__v_927) } else { bytes2_xor_split7_value(__v_907, __v_927, record) }; + let __v_934: G = __b2_out.0; + let __v_935: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_908, &__v_928) } else { bytes2_xor_split7_value(__v_908, __v_928, record) }; + let __v_936: G = __b2_out.0; + let __v_937: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_909, &__v_929) } else { bytes2_xor_split7_value(__v_909, __v_929, record) }; + let __v_938: G = __b2_out.0; + let __v_939: G = __b2_out.1; + let __v_940: G = (__v_932 + __v_935); + let __v_941: G = (__v_934 + __v_937); + let __v_942: G = (__v_936 + __v_939); + let __v_943: G = (__v_938 + __v_933); + let __u32_sum: u128 = u128::from(((__v_706.as_canonical_u64() << 0) | (__v_707.as_canonical_u64() << 8) | (__v_708.as_canonical_u64() << 16) | (__v_709.as_canonical_u64() << 24))) + u128::from(((__v_804.as_canonical_u64() << 0) | (__v_805.as_canonical_u64() << 8) | (__v_806.as_canonical_u64() << 16) | (__v_807.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_944: G = G::from_u8(__u32_bytes[0]); + let __v_945: G = G::from_u8(__u32_bytes[1]); + let __v_946: G = G::from_u8(__u32_bytes[2]); + let __v_947: G = G::from_u8(__u32_bytes[3]); + let __v_948: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_944; let __vj = __v_945; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_946; let __vj = __v_947; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_949: G = G::from_u64(1); + let __v_950: G = (__v_948 - __v_949); + let __v_951: G = G::from_u64(2); + let __v_952: G = (__v_948 - __v_951); + let __v_953: G = (__v_950 * __v_952); + let __v_954: G = (__v_948 * __v_953); + let __v_955: G = G::from_u64(0); + if (__v_954 != __v_955) { + return Err(ExecError::AssertEqMismatch { lhs: __v_954.as_canonical_u64(), rhs: __v_955.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_956: G = if unconstrained { Bytes2::xor(&__v_923, &__v_944) } else { bytes2_xor_value(__v_923, __v_944, record) }; + let __v_957: G = if unconstrained { Bytes2::xor(&__v_924, &__v_945) } else { bytes2_xor_value(__v_924, __v_945, record) }; + let __v_958: G = if unconstrained { Bytes2::xor(&__v_925, &__v_946) } else { bytes2_xor_value(__v_925, __v_946, record) }; + let __v_959: G = if unconstrained { Bytes2::xor(&__v_922, &__v_947) } else { bytes2_xor_value(__v_922, __v_947, record) }; + let __u32_sum: u128 = u128::from(((__v_858.as_canonical_u64() << 0) | (__v_859.as_canonical_u64() << 8) | (__v_860.as_canonical_u64() << 16) | (__v_861.as_canonical_u64() << 24))) + u128::from(((__v_958.as_canonical_u64() << 0) | (__v_959.as_canonical_u64() << 8) | (__v_956.as_canonical_u64() << 16) | (__v_957.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_960: G = G::from_u8(__u32_bytes[0]); + let __v_961: G = G::from_u8(__u32_bytes[1]); + let __v_962: G = G::from_u8(__u32_bytes[2]); + let __v_963: G = G::from_u8(__u32_bytes[3]); + let __v_964: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_960; let __vj = __v_961; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_962; let __vj = __v_963; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_965: G = (__v_964 * __v_964); + if (__v_965 != __v_964) { + return Err(ExecError::AssertEqMismatch { lhs: __v_965.as_canonical_u64(), rhs: __v_964.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_804, &__v_960) } else { bytes2_xor_split4_value(__v_804, __v_960, record) }; + let __v_966: G = __b2_out.0; + let __v_967: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_805, &__v_961) } else { bytes2_xor_split4_value(__v_805, __v_961, record) }; + let __v_968: G = __b2_out.0; + let __v_969: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_806, &__v_962) } else { bytes2_xor_split4_value(__v_806, __v_962, record) }; + let __v_970: G = __b2_out.0; + let __v_971: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_807, &__v_963) } else { bytes2_xor_split4_value(__v_807, __v_963, record) }; + let __v_972: G = __b2_out.0; + let __v_973: G = __b2_out.1; + let __v_974: G = (__v_968 + __v_971); + let __v_975: G = (__v_970 + __v_973); + let __v_976: G = (__v_972 + __v_967); + let __v_977: G = (__v_966 + __v_969); + let __u32_sum: u128 = u128::from(((__v_944.as_canonical_u64() << 0) | (__v_945.as_canonical_u64() << 8) | (__v_946.as_canonical_u64() << 16) | (__v_947.as_canonical_u64() << 24))) + u128::from(((__v_974.as_canonical_u64() << 0) | (__v_975.as_canonical_u64() << 8) | (__v_976.as_canonical_u64() << 16) | (__v_977.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_978: G = G::from_u8(__u32_bytes[0]); + let __v_979: G = G::from_u8(__u32_bytes[1]); + let __v_980: G = G::from_u8(__u32_bytes[2]); + let __v_981: G = G::from_u8(__u32_bytes[3]); + let __v_982: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_978; let __vj = __v_979; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_980; let __vj = __v_981; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_983: G = G::from_u64(1); + let __v_984: G = (__v_982 - __v_983); + let __v_985: G = G::from_u64(2); + let __v_986: G = (__v_982 - __v_985); + let __v_987: G = (__v_984 * __v_986); + let __v_988: G = (__v_982 * __v_987); + let __v_989: G = G::from_u64(0); + if (__v_988 != __v_989) { + return Err(ExecError::AssertEqMismatch { lhs: __v_988.as_canonical_u64(), rhs: __v_989.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_990: G = if unconstrained { Bytes2::xor(&__v_958, &__v_978) } else { bytes2_xor_value(__v_958, __v_978, record) }; + let __v_991: G = if unconstrained { Bytes2::xor(&__v_959, &__v_979) } else { bytes2_xor_value(__v_959, __v_979, record) }; + let __v_992: G = if unconstrained { Bytes2::xor(&__v_956, &__v_980) } else { bytes2_xor_value(__v_956, __v_980, record) }; + let __v_993: G = if unconstrained { Bytes2::xor(&__v_957, &__v_981) } else { bytes2_xor_value(__v_957, __v_981, record) }; + let __u32_sum: u128 = u128::from(((__v_960.as_canonical_u64() << 0) | (__v_961.as_canonical_u64() << 8) | (__v_962.as_canonical_u64() << 16) | (__v_963.as_canonical_u64() << 24))) + u128::from(((__v_991.as_canonical_u64() << 0) | (__v_992.as_canonical_u64() << 8) | (__v_993.as_canonical_u64() << 16) | (__v_990.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_994: G = G::from_u8(__u32_bytes[0]); + let __v_995: G = G::from_u8(__u32_bytes[1]); + let __v_996: G = G::from_u8(__u32_bytes[2]); + let __v_997: G = G::from_u8(__u32_bytes[3]); + let __v_998: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_994; let __vj = __v_995; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_996; let __vj = __v_997; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_999: G = (__v_998 * __v_998); + if (__v_999 != __v_998) { + return Err(ExecError::AssertEqMismatch { lhs: __v_999.as_canonical_u64(), rhs: __v_998.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_974, &__v_994) } else { bytes2_xor_split7_value(__v_974, __v_994, record) }; + let __v_1000: G = __b2_out.0; + let __v_1001: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_975, &__v_995) } else { bytes2_xor_split7_value(__v_975, __v_995, record) }; + let __v_1002: G = __b2_out.0; + let __v_1003: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_976, &__v_996) } else { bytes2_xor_split7_value(__v_976, __v_996, record) }; + let __v_1004: G = __b2_out.0; + let __v_1005: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_977, &__v_997) } else { bytes2_xor_split7_value(__v_977, __v_997, record) }; + let __v_1006: G = __b2_out.0; + let __v_1007: G = __b2_out.1; + let __v_1008: G = (__v_1000 + __v_1003); + let __v_1009: G = (__v_1002 + __v_1005); + let __v_1010: G = (__v_1004 + __v_1007); + let __v_1011: G = (__v_1006 + __v_1001); + let __u32_sum: u128 = u128::from(((__v_774.as_canonical_u64() << 0) | (__v_775.as_canonical_u64() << 8) | (__v_776.as_canonical_u64() << 16) | (__v_777.as_canonical_u64() << 24))) + u128::from(((__v_872.as_canonical_u64() << 0) | (__v_873.as_canonical_u64() << 8) | (__v_874.as_canonical_u64() << 16) | (__v_875.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1012: G = G::from_u8(__u32_bytes[0]); + let __v_1013: G = G::from_u8(__u32_bytes[1]); + let __v_1014: G = G::from_u8(__u32_bytes[2]); + let __v_1015: G = G::from_u8(__u32_bytes[3]); + let __v_1016: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1012; let __vj = __v_1013; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1014; let __vj = __v_1015; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1017: G = G::from_u64(1); + let __v_1018: G = (__v_1016 - __v_1017); + let __v_1019: G = G::from_u64(2); + let __v_1020: G = (__v_1016 - __v_1019); + let __v_1021: G = (__v_1018 * __v_1020); + let __v_1022: G = (__v_1016 * __v_1021); + let __v_1023: G = G::from_u64(0); + if (__v_1022 != __v_1023) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1022.as_canonical_u64(), rhs: __v_1023.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1024: G = if unconstrained { Bytes2::xor(&__v_719, &__v_1012) } else { bytes2_xor_value(__v_719, __v_1012, record) }; + let __v_1025: G = if unconstrained { Bytes2::xor(&__v_720, &__v_1013) } else { bytes2_xor_value(__v_720, __v_1013, record) }; + let __v_1026: G = if unconstrained { Bytes2::xor(&__v_721, &__v_1014) } else { bytes2_xor_value(__v_721, __v_1014, record) }; + let __v_1027: G = if unconstrained { Bytes2::xor(&__v_718, &__v_1015) } else { bytes2_xor_value(__v_718, __v_1015, record) }; + let __u32_sum: u128 = u128::from(((__v_926.as_canonical_u64() << 0) | (__v_927.as_canonical_u64() << 8) | (__v_928.as_canonical_u64() << 16) | (__v_929.as_canonical_u64() << 24))) + u128::from(((__v_1026.as_canonical_u64() << 0) | (__v_1027.as_canonical_u64() << 8) | (__v_1024.as_canonical_u64() << 16) | (__v_1025.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1028: G = G::from_u8(__u32_bytes[0]); + let __v_1029: G = G::from_u8(__u32_bytes[1]); + let __v_1030: G = G::from_u8(__u32_bytes[2]); + let __v_1031: G = G::from_u8(__u32_bytes[3]); + let __v_1032: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1028; let __vj = __v_1029; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1030; let __vj = __v_1031; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1033: G = (__v_1032 * __v_1032); + if (__v_1033 != __v_1032) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1033.as_canonical_u64(), rhs: __v_1032.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_872, &__v_1028) } else { bytes2_xor_split4_value(__v_872, __v_1028, record) }; + let __v_1034: G = __b2_out.0; + let __v_1035: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_873, &__v_1029) } else { bytes2_xor_split4_value(__v_873, __v_1029, record) }; + let __v_1036: G = __b2_out.0; + let __v_1037: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_874, &__v_1030) } else { bytes2_xor_split4_value(__v_874, __v_1030, record) }; + let __v_1038: G = __b2_out.0; + let __v_1039: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_875, &__v_1031) } else { bytes2_xor_split4_value(__v_875, __v_1031, record) }; + let __v_1040: G = __b2_out.0; + let __v_1041: G = __b2_out.1; + let __v_1042: G = (__v_1036 + __v_1039); + let __v_1043: G = (__v_1038 + __v_1041); + let __v_1044: G = (__v_1040 + __v_1035); + let __v_1045: G = (__v_1034 + __v_1037); + let __u32_sum: u128 = u128::from(((__v_1012.as_canonical_u64() << 0) | (__v_1013.as_canonical_u64() << 8) | (__v_1014.as_canonical_u64() << 16) | (__v_1015.as_canonical_u64() << 24))) + u128::from(((__v_1042.as_canonical_u64() << 0) | (__v_1043.as_canonical_u64() << 8) | (__v_1044.as_canonical_u64() << 16) | (__v_1045.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1046: G = G::from_u8(__u32_bytes[0]); + let __v_1047: G = G::from_u8(__u32_bytes[1]); + let __v_1048: G = G::from_u8(__u32_bytes[2]); + let __v_1049: G = G::from_u8(__u32_bytes[3]); + let __v_1050: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1046; let __vj = __v_1047; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1048; let __vj = __v_1049; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1051: G = G::from_u64(1); + let __v_1052: G = (__v_1050 - __v_1051); + let __v_1053: G = G::from_u64(2); + let __v_1054: G = (__v_1050 - __v_1053); + let __v_1055: G = (__v_1052 * __v_1054); + let __v_1056: G = (__v_1050 * __v_1055); + let __v_1057: G = G::from_u64(0); + if (__v_1056 != __v_1057) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1056.as_canonical_u64(), rhs: __v_1057.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1058: G = if unconstrained { Bytes2::xor(&__v_1026, &__v_1046) } else { bytes2_xor_value(__v_1026, __v_1046, record) }; + let __v_1059: G = if unconstrained { Bytes2::xor(&__v_1027, &__v_1047) } else { bytes2_xor_value(__v_1027, __v_1047, record) }; + let __v_1060: G = if unconstrained { Bytes2::xor(&__v_1024, &__v_1048) } else { bytes2_xor_value(__v_1024, __v_1048, record) }; + let __v_1061: G = if unconstrained { Bytes2::xor(&__v_1025, &__v_1049) } else { bytes2_xor_value(__v_1025, __v_1049, record) }; + let __u32_sum: u128 = u128::from(((__v_1028.as_canonical_u64() << 0) | (__v_1029.as_canonical_u64() << 8) | (__v_1030.as_canonical_u64() << 16) | (__v_1031.as_canonical_u64() << 24))) + u128::from(((__v_1059.as_canonical_u64() << 0) | (__v_1060.as_canonical_u64() << 8) | (__v_1061.as_canonical_u64() << 16) | (__v_1058.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1062: G = G::from_u8(__u32_bytes[0]); + let __v_1063: G = G::from_u8(__u32_bytes[1]); + let __v_1064: G = G::from_u8(__u32_bytes[2]); + let __v_1065: G = G::from_u8(__u32_bytes[3]); + let __v_1066: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1062; let __vj = __v_1063; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1064; let __vj = __v_1065; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1067: G = (__v_1066 * __v_1066); + if (__v_1067 != __v_1066) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1067.as_canonical_u64(), rhs: __v_1066.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1042, &__v_1062) } else { bytes2_xor_split7_value(__v_1042, __v_1062, record) }; + let __v_1068: G = __b2_out.0; + let __v_1069: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1043, &__v_1063) } else { bytes2_xor_split7_value(__v_1043, __v_1063, record) }; + let __v_1070: G = __b2_out.0; + let __v_1071: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1044, &__v_1064) } else { bytes2_xor_split7_value(__v_1044, __v_1064, record) }; + let __v_1072: G = __b2_out.0; + let __v_1073: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1045, &__v_1065) } else { bytes2_xor_split7_value(__v_1045, __v_1065, record) }; + let __v_1074: G = __b2_out.0; + let __v_1075: G = __b2_out.1; + let __v_1076: G = (__v_1068 + __v_1071); + let __v_1077: G = (__v_1070 + __v_1073); + let __v_1078: G = (__v_1072 + __v_1075); + let __v_1079: G = (__v_1074 + __v_1069); + let __u32_sum: u128 = u128::from(((__v_842.as_canonical_u64() << 0) | (__v_843.as_canonical_u64() << 8) | (__v_844.as_canonical_u64() << 16) | (__v_845.as_canonical_u64() << 24))) + u128::from(((__v_940.as_canonical_u64() << 0) | (__v_941.as_canonical_u64() << 8) | (__v_942.as_canonical_u64() << 16) | (__v_943.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1080: G = G::from_u8(__u32_bytes[0]); + let __v_1081: G = G::from_u8(__u32_bytes[1]); + let __v_1082: G = G::from_u8(__u32_bytes[2]); + let __v_1083: G = G::from_u8(__u32_bytes[3]); + let __v_1084: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1080; let __vj = __v_1081; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1082; let __vj = __v_1083; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1085: G = G::from_u64(1); + let __v_1086: G = (__v_1084 - __v_1085); + let __v_1087: G = G::from_u64(2); + let __v_1088: G = (__v_1084 - __v_1087); + let __v_1089: G = (__v_1086 * __v_1088); + let __v_1090: G = (__v_1084 * __v_1089); + let __v_1091: G = G::from_u64(0); + if (__v_1090 != __v_1091) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1090.as_canonical_u64(), rhs: __v_1091.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1092: G = if unconstrained { Bytes2::xor(&__v_787, &__v_1080) } else { bytes2_xor_value(__v_787, __v_1080, record) }; + let __v_1093: G = if unconstrained { Bytes2::xor(&__v_788, &__v_1081) } else { bytes2_xor_value(__v_788, __v_1081, record) }; + let __v_1094: G = if unconstrained { Bytes2::xor(&__v_789, &__v_1082) } else { bytes2_xor_value(__v_789, __v_1082, record) }; + let __v_1095: G = if unconstrained { Bytes2::xor(&__v_786, &__v_1083) } else { bytes2_xor_value(__v_786, __v_1083, record) }; + let __u32_sum: u128 = u128::from(((__v_722.as_canonical_u64() << 0) | (__v_723.as_canonical_u64() << 8) | (__v_724.as_canonical_u64() << 16) | (__v_725.as_canonical_u64() << 24))) + u128::from(((__v_1094.as_canonical_u64() << 0) | (__v_1095.as_canonical_u64() << 8) | (__v_1092.as_canonical_u64() << 16) | (__v_1093.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1096: G = G::from_u8(__u32_bytes[0]); + let __v_1097: G = G::from_u8(__u32_bytes[1]); + let __v_1098: G = G::from_u8(__u32_bytes[2]); + let __v_1099: G = G::from_u8(__u32_bytes[3]); + let __v_1100: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1096; let __vj = __v_1097; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1098; let __vj = __v_1099; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1101: G = (__v_1100 * __v_1100); + if (__v_1101 != __v_1100) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1101.as_canonical_u64(), rhs: __v_1100.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_940, &__v_1096) } else { bytes2_xor_split4_value(__v_940, __v_1096, record) }; + let __v_1102: G = __b2_out.0; + let __v_1103: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_941, &__v_1097) } else { bytes2_xor_split4_value(__v_941, __v_1097, record) }; + let __v_1104: G = __b2_out.0; + let __v_1105: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_942, &__v_1098) } else { bytes2_xor_split4_value(__v_942, __v_1098, record) }; + let __v_1106: G = __b2_out.0; + let __v_1107: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_943, &__v_1099) } else { bytes2_xor_split4_value(__v_943, __v_1099, record) }; + let __v_1108: G = __b2_out.0; + let __v_1109: G = __b2_out.1; + let __v_1110: G = (__v_1104 + __v_1107); + let __v_1111: G = (__v_1106 + __v_1109); + let __v_1112: G = (__v_1108 + __v_1103); + let __v_1113: G = (__v_1102 + __v_1105); + let __u32_sum: u128 = u128::from(((__v_1080.as_canonical_u64() << 0) | (__v_1081.as_canonical_u64() << 8) | (__v_1082.as_canonical_u64() << 16) | (__v_1083.as_canonical_u64() << 24))) + u128::from(((__v_1110.as_canonical_u64() << 0) | (__v_1111.as_canonical_u64() << 8) | (__v_1112.as_canonical_u64() << 16) | (__v_1113.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1114: G = G::from_u8(__u32_bytes[0]); + let __v_1115: G = G::from_u8(__u32_bytes[1]); + let __v_1116: G = G::from_u8(__u32_bytes[2]); + let __v_1117: G = G::from_u8(__u32_bytes[3]); + let __v_1118: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1114; let __vj = __v_1115; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1116; let __vj = __v_1117; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1119: G = G::from_u64(1); + let __v_1120: G = (__v_1118 - __v_1119); + let __v_1121: G = G::from_u64(2); + let __v_1122: G = (__v_1118 - __v_1121); + let __v_1123: G = (__v_1120 * __v_1122); + let __v_1124: G = (__v_1118 * __v_1123); + let __v_1125: G = G::from_u64(0); + if (__v_1124 != __v_1125) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1124.as_canonical_u64(), rhs: __v_1125.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1126: G = if unconstrained { Bytes2::xor(&__v_1094, &__v_1114) } else { bytes2_xor_value(__v_1094, __v_1114, record) }; + let __v_1127: G = if unconstrained { Bytes2::xor(&__v_1095, &__v_1115) } else { bytes2_xor_value(__v_1095, __v_1115, record) }; + let __v_1128: G = if unconstrained { Bytes2::xor(&__v_1092, &__v_1116) } else { bytes2_xor_value(__v_1092, __v_1116, record) }; + let __v_1129: G = if unconstrained { Bytes2::xor(&__v_1093, &__v_1117) } else { bytes2_xor_value(__v_1093, __v_1117, record) }; + let __u32_sum: u128 = u128::from(((__v_1096.as_canonical_u64() << 0) | (__v_1097.as_canonical_u64() << 8) | (__v_1098.as_canonical_u64() << 16) | (__v_1099.as_canonical_u64() << 24))) + u128::from(((__v_1127.as_canonical_u64() << 0) | (__v_1128.as_canonical_u64() << 8) | (__v_1129.as_canonical_u64() << 16) | (__v_1126.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1130: G = G::from_u8(__u32_bytes[0]); + let __v_1131: G = G::from_u8(__u32_bytes[1]); + let __v_1132: G = G::from_u8(__u32_bytes[2]); + let __v_1133: G = G::from_u8(__u32_bytes[3]); + let __v_1134: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1130; let __vj = __v_1131; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1132; let __vj = __v_1133; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1135: G = (__v_1134 * __v_1134); + if (__v_1135 != __v_1134) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1135.as_canonical_u64(), rhs: __v_1134.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1110, &__v_1130) } else { bytes2_xor_split7_value(__v_1110, __v_1130, record) }; + let __v_1136: G = __b2_out.0; + let __v_1137: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1111, &__v_1131) } else { bytes2_xor_split7_value(__v_1111, __v_1131, record) }; + let __v_1138: G = __b2_out.0; + let __v_1139: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1112, &__v_1132) } else { bytes2_xor_split7_value(__v_1112, __v_1132, record) }; + let __v_1140: G = __b2_out.0; + let __v_1141: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1113, &__v_1133) } else { bytes2_xor_split7_value(__v_1113, __v_1133, record) }; + let __v_1142: G = __b2_out.0; + let __v_1143: G = __b2_out.1; + let __v_1144: G = (__v_1136 + __v_1139); + let __v_1145: G = (__v_1138 + __v_1141); + let __v_1146: G = (__v_1140 + __v_1143); + let __v_1147: G = (__v_1142 + __v_1137); + let __u32_sum: u128 = u128::from(((__v_910.as_canonical_u64() << 0) | (__v_911.as_canonical_u64() << 8) | (__v_912.as_canonical_u64() << 16) | (__v_913.as_canonical_u64() << 24))) + u128::from(((__v_736.as_canonical_u64() << 0) | (__v_737.as_canonical_u64() << 8) | (__v_738.as_canonical_u64() << 16) | (__v_739.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1148: G = G::from_u8(__u32_bytes[0]); + let __v_1149: G = G::from_u8(__u32_bytes[1]); + let __v_1150: G = G::from_u8(__u32_bytes[2]); + let __v_1151: G = G::from_u8(__u32_bytes[3]); + let __v_1152: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1148; let __vj = __v_1149; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1150; let __vj = __v_1151; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1153: G = G::from_u64(1); + let __v_1154: G = (__v_1152 - __v_1153); + let __v_1155: G = G::from_u64(2); + let __v_1156: G = (__v_1152 - __v_1155); + let __v_1157: G = (__v_1154 * __v_1156); + let __v_1158: G = (__v_1152 * __v_1157); + let __v_1159: G = G::from_u64(0); + if (__v_1158 != __v_1159) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1158.as_canonical_u64(), rhs: __v_1159.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1160: G = if unconstrained { Bytes2::xor(&__v_855, &__v_1148) } else { bytes2_xor_value(__v_855, __v_1148, record) }; + let __v_1161: G = if unconstrained { Bytes2::xor(&__v_856, &__v_1149) } else { bytes2_xor_value(__v_856, __v_1149, record) }; + let __v_1162: G = if unconstrained { Bytes2::xor(&__v_857, &__v_1150) } else { bytes2_xor_value(__v_857, __v_1150, record) }; + let __v_1163: G = if unconstrained { Bytes2::xor(&__v_854, &__v_1151) } else { bytes2_xor_value(__v_854, __v_1151, record) }; + let __u32_sum: u128 = u128::from(((__v_790.as_canonical_u64() << 0) | (__v_791.as_canonical_u64() << 8) | (__v_792.as_canonical_u64() << 16) | (__v_793.as_canonical_u64() << 24))) + u128::from(((__v_1162.as_canonical_u64() << 0) | (__v_1163.as_canonical_u64() << 8) | (__v_1160.as_canonical_u64() << 16) | (__v_1161.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1164: G = G::from_u8(__u32_bytes[0]); + let __v_1165: G = G::from_u8(__u32_bytes[1]); + let __v_1166: G = G::from_u8(__u32_bytes[2]); + let __v_1167: G = G::from_u8(__u32_bytes[3]); + let __v_1168: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1164; let __vj = __v_1165; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1166; let __vj = __v_1167; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1169: G = (__v_1168 * __v_1168); + if (__v_1169 != __v_1168) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1169.as_canonical_u64(), rhs: __v_1168.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_736, &__v_1164) } else { bytes2_xor_split4_value(__v_736, __v_1164, record) }; + let __v_1170: G = __b2_out.0; + let __v_1171: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_737, &__v_1165) } else { bytes2_xor_split4_value(__v_737, __v_1165, record) }; + let __v_1172: G = __b2_out.0; + let __v_1173: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_738, &__v_1166) } else { bytes2_xor_split4_value(__v_738, __v_1166, record) }; + let __v_1174: G = __b2_out.0; + let __v_1175: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_739, &__v_1167) } else { bytes2_xor_split4_value(__v_739, __v_1167, record) }; + let __v_1176: G = __b2_out.0; + let __v_1177: G = __b2_out.1; + let __v_1178: G = (__v_1172 + __v_1175); + let __v_1179: G = (__v_1174 + __v_1177); + let __v_1180: G = (__v_1176 + __v_1171); + let __v_1181: G = (__v_1170 + __v_1173); + let __u32_sum: u128 = u128::from(((__v_1148.as_canonical_u64() << 0) | (__v_1149.as_canonical_u64() << 8) | (__v_1150.as_canonical_u64() << 16) | (__v_1151.as_canonical_u64() << 24))) + u128::from(((__v_1178.as_canonical_u64() << 0) | (__v_1179.as_canonical_u64() << 8) | (__v_1180.as_canonical_u64() << 16) | (__v_1181.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1182: G = G::from_u8(__u32_bytes[0]); + let __v_1183: G = G::from_u8(__u32_bytes[1]); + let __v_1184: G = G::from_u8(__u32_bytes[2]); + let __v_1185: G = G::from_u8(__u32_bytes[3]); + let __v_1186: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1182; let __vj = __v_1183; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1184; let __vj = __v_1185; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1187: G = G::from_u64(1); + let __v_1188: G = (__v_1186 - __v_1187); + let __v_1189: G = G::from_u64(2); + let __v_1190: G = (__v_1186 - __v_1189); + let __v_1191: G = (__v_1188 * __v_1190); + let __v_1192: G = (__v_1186 * __v_1191); + let __v_1193: G = G::from_u64(0); + if (__v_1192 != __v_1193) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1192.as_canonical_u64(), rhs: __v_1193.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1194: G = if unconstrained { Bytes2::xor(&__v_1162, &__v_1182) } else { bytes2_xor_value(__v_1162, __v_1182, record) }; + let __v_1195: G = if unconstrained { Bytes2::xor(&__v_1163, &__v_1183) } else { bytes2_xor_value(__v_1163, __v_1183, record) }; + let __v_1196: G = if unconstrained { Bytes2::xor(&__v_1160, &__v_1184) } else { bytes2_xor_value(__v_1160, __v_1184, record) }; + let __v_1197: G = if unconstrained { Bytes2::xor(&__v_1161, &__v_1185) } else { bytes2_xor_value(__v_1161, __v_1185, record) }; + let __u32_sum: u128 = u128::from(((__v_1164.as_canonical_u64() << 0) | (__v_1165.as_canonical_u64() << 8) | (__v_1166.as_canonical_u64() << 16) | (__v_1167.as_canonical_u64() << 24))) + u128::from(((__v_1195.as_canonical_u64() << 0) | (__v_1196.as_canonical_u64() << 8) | (__v_1197.as_canonical_u64() << 16) | (__v_1194.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1198: G = G::from_u8(__u32_bytes[0]); + let __v_1199: G = G::from_u8(__u32_bytes[1]); + let __v_1200: G = G::from_u8(__u32_bytes[2]); + let __v_1201: G = G::from_u8(__u32_bytes[3]); + let __v_1202: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1198; let __vj = __v_1199; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1200; let __vj = __v_1201; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1203: G = (__v_1202 * __v_1202); + if (__v_1203 != __v_1202) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1203.as_canonical_u64(), rhs: __v_1202.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1178, &__v_1198) } else { bytes2_xor_split7_value(__v_1178, __v_1198, record) }; + let __v_1204: G = __b2_out.0; + let __v_1205: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1179, &__v_1199) } else { bytes2_xor_split7_value(__v_1179, __v_1199, record) }; + let __v_1206: G = __b2_out.0; + let __v_1207: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1180, &__v_1200) } else { bytes2_xor_split7_value(__v_1180, __v_1200, record) }; + let __v_1208: G = __b2_out.0; + let __v_1209: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1181, &__v_1201) } else { bytes2_xor_split7_value(__v_1181, __v_1201, record) }; + let __v_1210: G = __b2_out.0; + let __v_1211: G = __b2_out.1; + let __v_1212: G = (__v_1204 + __v_1207); + let __v_1213: G = (__v_1206 + __v_1209); + let __v_1214: G = (__v_1208 + __v_1211); + let __v_1215: G = (__v_1210 + __v_1205); + let __u32_sum: u128 = u128::from(((__v_978.as_canonical_u64() << 0) | (__v_979.as_canonical_u64() << 8) | (__v_980.as_canonical_u64() << 16) | (__v_981.as_canonical_u64() << 24))) + u128::from(((__v_1212.as_canonical_u64() << 0) | (__v_1213.as_canonical_u64() << 8) | (__v_1214.as_canonical_u64() << 16) | (__v_1215.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1216: G = G::from_u8(__u32_bytes[0]); + let __v_1217: G = G::from_u8(__u32_bytes[1]); + let __v_1218: G = G::from_u8(__u32_bytes[2]); + let __v_1219: G = G::from_u8(__u32_bytes[3]); + let __v_1220: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1216; let __vj = __v_1217; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1218; let __vj = __v_1219; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1221: G = G::from_u64(1); + let __v_1222: G = (__v_1220 - __v_1221); + let __v_1223: G = G::from_u64(2); + let __v_1224: G = (__v_1220 - __v_1223); + let __v_1225: G = (__v_1222 * __v_1224); + let __v_1226: G = (__v_1220 * __v_1225); + let __v_1227: G = G::from_u64(0); + if (__v_1226 != __v_1227) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1226.as_canonical_u64(), rhs: __v_1227.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1228: G = if unconstrained { Bytes2::xor(&__v_1059, &__v_1216) } else { bytes2_xor_value(__v_1059, __v_1216, record) }; + let __v_1229: G = if unconstrained { Bytes2::xor(&__v_1060, &__v_1217) } else { bytes2_xor_value(__v_1060, __v_1217, record) }; + let __v_1230: G = if unconstrained { Bytes2::xor(&__v_1061, &__v_1218) } else { bytes2_xor_value(__v_1061, __v_1218, record) }; + let __v_1231: G = if unconstrained { Bytes2::xor(&__v_1058, &__v_1219) } else { bytes2_xor_value(__v_1058, __v_1219, record) }; + let __u32_sum: u128 = u128::from(((__v_1130.as_canonical_u64() << 0) | (__v_1131.as_canonical_u64() << 8) | (__v_1132.as_canonical_u64() << 16) | (__v_1133.as_canonical_u64() << 24))) + u128::from(((__v_1230.as_canonical_u64() << 0) | (__v_1231.as_canonical_u64() << 8) | (__v_1228.as_canonical_u64() << 16) | (__v_1229.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1232: G = G::from_u8(__u32_bytes[0]); + let __v_1233: G = G::from_u8(__u32_bytes[1]); + let __v_1234: G = G::from_u8(__u32_bytes[2]); + let __v_1235: G = G::from_u8(__u32_bytes[3]); + let __v_1236: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1232; let __vj = __v_1233; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1234; let __vj = __v_1235; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1237: G = (__v_1236 * __v_1236); + if (__v_1237 != __v_1236) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1237.as_canonical_u64(), rhs: __v_1236.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1212, &__v_1232) } else { bytes2_xor_split4_value(__v_1212, __v_1232, record) }; + let __v_1238: G = __b2_out.0; + let __v_1239: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1213, &__v_1233) } else { bytes2_xor_split4_value(__v_1213, __v_1233, record) }; + let __v_1240: G = __b2_out.0; + let __v_1241: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1214, &__v_1234) } else { bytes2_xor_split4_value(__v_1214, __v_1234, record) }; + let __v_1242: G = __b2_out.0; + let __v_1243: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1215, &__v_1235) } else { bytes2_xor_split4_value(__v_1215, __v_1235, record) }; + let __v_1244: G = __b2_out.0; + let __v_1245: G = __b2_out.1; + let __v_1246: G = (__v_1240 + __v_1243); + let __v_1247: G = (__v_1242 + __v_1245); + let __v_1248: G = (__v_1244 + __v_1239); + let __v_1249: G = (__v_1238 + __v_1241); + let __u32_sum: u128 = u128::from(((__v_1216.as_canonical_u64() << 0) | (__v_1217.as_canonical_u64() << 8) | (__v_1218.as_canonical_u64() << 16) | (__v_1219.as_canonical_u64() << 24))) + u128::from(((__v_1246.as_canonical_u64() << 0) | (__v_1247.as_canonical_u64() << 8) | (__v_1248.as_canonical_u64() << 16) | (__v_1249.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1250: G = G::from_u8(__u32_bytes[0]); + let __v_1251: G = G::from_u8(__u32_bytes[1]); + let __v_1252: G = G::from_u8(__u32_bytes[2]); + let __v_1253: G = G::from_u8(__u32_bytes[3]); + let __v_1254: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1250; let __vj = __v_1251; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1252; let __vj = __v_1253; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1255: G = G::from_u64(1); + let __v_1256: G = (__v_1254 - __v_1255); + let __v_1257: G = G::from_u64(2); + let __v_1258: G = (__v_1254 - __v_1257); + let __v_1259: G = (__v_1256 * __v_1258); + let __v_1260: G = (__v_1254 * __v_1259); + let __v_1261: G = G::from_u64(0); + if (__v_1260 != __v_1261) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1260.as_canonical_u64(), rhs: __v_1261.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1262: G = if unconstrained { Bytes2::xor(&__v_1230, &__v_1250) } else { bytes2_xor_value(__v_1230, __v_1250, record) }; + let __v_1263: G = if unconstrained { Bytes2::xor(&__v_1231, &__v_1251) } else { bytes2_xor_value(__v_1231, __v_1251, record) }; + let __v_1264: G = if unconstrained { Bytes2::xor(&__v_1228, &__v_1252) } else { bytes2_xor_value(__v_1228, __v_1252, record) }; + let __v_1265: G = if unconstrained { Bytes2::xor(&__v_1229, &__v_1253) } else { bytes2_xor_value(__v_1229, __v_1253, record) }; + let __u32_sum: u128 = u128::from(((__v_1232.as_canonical_u64() << 0) | (__v_1233.as_canonical_u64() << 8) | (__v_1234.as_canonical_u64() << 16) | (__v_1235.as_canonical_u64() << 24))) + u128::from(((__v_1263.as_canonical_u64() << 0) | (__v_1264.as_canonical_u64() << 8) | (__v_1265.as_canonical_u64() << 16) | (__v_1262.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1266: G = G::from_u8(__u32_bytes[0]); + let __v_1267: G = G::from_u8(__u32_bytes[1]); + let __v_1268: G = G::from_u8(__u32_bytes[2]); + let __v_1269: G = G::from_u8(__u32_bytes[3]); + let __v_1270: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1266; let __vj = __v_1267; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1268; let __vj = __v_1269; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1271: G = (__v_1270 * __v_1270); + if (__v_1271 != __v_1270) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1271.as_canonical_u64(), rhs: __v_1270.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1246, &__v_1266) } else { bytes2_xor_split7_value(__v_1246, __v_1266, record) }; + let __v_1272: G = __b2_out.0; + let __v_1273: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1247, &__v_1267) } else { bytes2_xor_split7_value(__v_1247, __v_1267, record) }; + let __v_1274: G = __b2_out.0; + let __v_1275: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1248, &__v_1268) } else { bytes2_xor_split7_value(__v_1248, __v_1268, record) }; + let __v_1276: G = __b2_out.0; + let __v_1277: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1249, &__v_1269) } else { bytes2_xor_split7_value(__v_1249, __v_1269, record) }; + let __v_1278: G = __b2_out.0; + let __v_1279: G = __b2_out.1; + let __v_1280: G = (__v_1272 + __v_1275); + let __v_1281: G = (__v_1274 + __v_1277); + let __v_1282: G = (__v_1276 + __v_1279); + let __v_1283: G = (__v_1278 + __v_1273); + let __u32_sum: u128 = u128::from(((__v_1046.as_canonical_u64() << 0) | (__v_1047.as_canonical_u64() << 8) | (__v_1048.as_canonical_u64() << 16) | (__v_1049.as_canonical_u64() << 24))) + u128::from(((__v_1008.as_canonical_u64() << 0) | (__v_1009.as_canonical_u64() << 8) | (__v_1010.as_canonical_u64() << 16) | (__v_1011.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1284: G = G::from_u8(__u32_bytes[0]); + let __v_1285: G = G::from_u8(__u32_bytes[1]); + let __v_1286: G = G::from_u8(__u32_bytes[2]); + let __v_1287: G = G::from_u8(__u32_bytes[3]); + let __v_1288: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1284; let __vj = __v_1285; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1286; let __vj = __v_1287; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1289: G = G::from_u64(1); + let __v_1290: G = (__v_1288 - __v_1289); + let __v_1291: G = G::from_u64(2); + let __v_1292: G = (__v_1288 - __v_1291); + let __v_1293: G = (__v_1290 * __v_1292); + let __v_1294: G = (__v_1288 * __v_1293); + let __v_1295: G = G::from_u64(0); + if (__v_1294 != __v_1295) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1294.as_canonical_u64(), rhs: __v_1295.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1296: G = if unconstrained { Bytes2::xor(&__v_1127, &__v_1284) } else { bytes2_xor_value(__v_1127, __v_1284, record) }; + let __v_1297: G = if unconstrained { Bytes2::xor(&__v_1128, &__v_1285) } else { bytes2_xor_value(__v_1128, __v_1285, record) }; + let __v_1298: G = if unconstrained { Bytes2::xor(&__v_1129, &__v_1286) } else { bytes2_xor_value(__v_1129, __v_1286, record) }; + let __v_1299: G = if unconstrained { Bytes2::xor(&__v_1126, &__v_1287) } else { bytes2_xor_value(__v_1126, __v_1287, record) }; + let __u32_sum: u128 = u128::from(((__v_1198.as_canonical_u64() << 0) | (__v_1199.as_canonical_u64() << 8) | (__v_1200.as_canonical_u64() << 16) | (__v_1201.as_canonical_u64() << 24))) + u128::from(((__v_1298.as_canonical_u64() << 0) | (__v_1299.as_canonical_u64() << 8) | (__v_1296.as_canonical_u64() << 16) | (__v_1297.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1300: G = G::from_u8(__u32_bytes[0]); + let __v_1301: G = G::from_u8(__u32_bytes[1]); + let __v_1302: G = G::from_u8(__u32_bytes[2]); + let __v_1303: G = G::from_u8(__u32_bytes[3]); + let __v_1304: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1300; let __vj = __v_1301; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1302; let __vj = __v_1303; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1305: G = (__v_1304 * __v_1304); + if (__v_1305 != __v_1304) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1305.as_canonical_u64(), rhs: __v_1304.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1008, &__v_1300) } else { bytes2_xor_split4_value(__v_1008, __v_1300, record) }; + let __v_1306: G = __b2_out.0; + let __v_1307: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1009, &__v_1301) } else { bytes2_xor_split4_value(__v_1009, __v_1301, record) }; + let __v_1308: G = __b2_out.0; + let __v_1309: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1010, &__v_1302) } else { bytes2_xor_split4_value(__v_1010, __v_1302, record) }; + let __v_1310: G = __b2_out.0; + let __v_1311: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1011, &__v_1303) } else { bytes2_xor_split4_value(__v_1011, __v_1303, record) }; + let __v_1312: G = __b2_out.0; + let __v_1313: G = __b2_out.1; + let __v_1314: G = (__v_1308 + __v_1311); + let __v_1315: G = (__v_1310 + __v_1313); + let __v_1316: G = (__v_1312 + __v_1307); + let __v_1317: G = (__v_1306 + __v_1309); + let __u32_sum: u128 = u128::from(((__v_1284.as_canonical_u64() << 0) | (__v_1285.as_canonical_u64() << 8) | (__v_1286.as_canonical_u64() << 16) | (__v_1287.as_canonical_u64() << 24))) + u128::from(((__v_1314.as_canonical_u64() << 0) | (__v_1315.as_canonical_u64() << 8) | (__v_1316.as_canonical_u64() << 16) | (__v_1317.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1318: G = G::from_u8(__u32_bytes[0]); + let __v_1319: G = G::from_u8(__u32_bytes[1]); + let __v_1320: G = G::from_u8(__u32_bytes[2]); + let __v_1321: G = G::from_u8(__u32_bytes[3]); + let __v_1322: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1318; let __vj = __v_1319; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1320; let __vj = __v_1321; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1323: G = G::from_u64(1); + let __v_1324: G = (__v_1322 - __v_1323); + let __v_1325: G = G::from_u64(2); + let __v_1326: G = (__v_1322 - __v_1325); + let __v_1327: G = (__v_1324 * __v_1326); + let __v_1328: G = (__v_1322 * __v_1327); + let __v_1329: G = G::from_u64(0); + if (__v_1328 != __v_1329) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1328.as_canonical_u64(), rhs: __v_1329.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1330: G = if unconstrained { Bytes2::xor(&__v_1298, &__v_1318) } else { bytes2_xor_value(__v_1298, __v_1318, record) }; + let __v_1331: G = if unconstrained { Bytes2::xor(&__v_1299, &__v_1319) } else { bytes2_xor_value(__v_1299, __v_1319, record) }; + let __v_1332: G = if unconstrained { Bytes2::xor(&__v_1296, &__v_1320) } else { bytes2_xor_value(__v_1296, __v_1320, record) }; + let __v_1333: G = if unconstrained { Bytes2::xor(&__v_1297, &__v_1321) } else { bytes2_xor_value(__v_1297, __v_1321, record) }; + let __u32_sum: u128 = u128::from(((__v_1300.as_canonical_u64() << 0) | (__v_1301.as_canonical_u64() << 8) | (__v_1302.as_canonical_u64() << 16) | (__v_1303.as_canonical_u64() << 24))) + u128::from(((__v_1331.as_canonical_u64() << 0) | (__v_1332.as_canonical_u64() << 8) | (__v_1333.as_canonical_u64() << 16) | (__v_1330.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1334: G = G::from_u8(__u32_bytes[0]); + let __v_1335: G = G::from_u8(__u32_bytes[1]); + let __v_1336: G = G::from_u8(__u32_bytes[2]); + let __v_1337: G = G::from_u8(__u32_bytes[3]); + let __v_1338: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1334; let __vj = __v_1335; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1336; let __vj = __v_1337; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1339: G = (__v_1338 * __v_1338); + if (__v_1339 != __v_1338) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1339.as_canonical_u64(), rhs: __v_1338.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1314, &__v_1334) } else { bytes2_xor_split7_value(__v_1314, __v_1334, record) }; + let __v_1340: G = __b2_out.0; + let __v_1341: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1315, &__v_1335) } else { bytes2_xor_split7_value(__v_1315, __v_1335, record) }; + let __v_1342: G = __b2_out.0; + let __v_1343: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1316, &__v_1336) } else { bytes2_xor_split7_value(__v_1316, __v_1336, record) }; + let __v_1344: G = __b2_out.0; + let __v_1345: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1317, &__v_1337) } else { bytes2_xor_split7_value(__v_1317, __v_1337, record) }; + let __v_1346: G = __b2_out.0; + let __v_1347: G = __b2_out.1; + let __v_1348: G = (__v_1340 + __v_1343); + let __v_1349: G = (__v_1342 + __v_1345); + let __v_1350: G = (__v_1344 + __v_1347); + let __v_1351: G = (__v_1346 + __v_1341); + let __u32_sum: u128 = u128::from(((__v_1114.as_canonical_u64() << 0) | (__v_1115.as_canonical_u64() << 8) | (__v_1116.as_canonical_u64() << 16) | (__v_1117.as_canonical_u64() << 24))) + u128::from(((__v_1076.as_canonical_u64() << 0) | (__v_1077.as_canonical_u64() << 8) | (__v_1078.as_canonical_u64() << 16) | (__v_1079.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1352: G = G::from_u8(__u32_bytes[0]); + let __v_1353: G = G::from_u8(__u32_bytes[1]); + let __v_1354: G = G::from_u8(__u32_bytes[2]); + let __v_1355: G = G::from_u8(__u32_bytes[3]); + let __v_1356: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1352; let __vj = __v_1353; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1354; let __vj = __v_1355; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1357: G = G::from_u64(1); + let __v_1358: G = (__v_1356 - __v_1357); + let __v_1359: G = G::from_u64(2); + let __v_1360: G = (__v_1356 - __v_1359); + let __v_1361: G = (__v_1358 * __v_1360); + let __v_1362: G = (__v_1356 * __v_1361); + let __v_1363: G = G::from_u64(0); + if (__v_1362 != __v_1363) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1362.as_canonical_u64(), rhs: __v_1363.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1364: G = if unconstrained { Bytes2::xor(&__v_1195, &__v_1352) } else { bytes2_xor_value(__v_1195, __v_1352, record) }; + let __v_1365: G = if unconstrained { Bytes2::xor(&__v_1196, &__v_1353) } else { bytes2_xor_value(__v_1196, __v_1353, record) }; + let __v_1366: G = if unconstrained { Bytes2::xor(&__v_1197, &__v_1354) } else { bytes2_xor_value(__v_1197, __v_1354, record) }; + let __v_1367: G = if unconstrained { Bytes2::xor(&__v_1194, &__v_1355) } else { bytes2_xor_value(__v_1194, __v_1355, record) }; + let __u32_sum: u128 = u128::from(((__v_994.as_canonical_u64() << 0) | (__v_995.as_canonical_u64() << 8) | (__v_996.as_canonical_u64() << 16) | (__v_997.as_canonical_u64() << 24))) + u128::from(((__v_1366.as_canonical_u64() << 0) | (__v_1367.as_canonical_u64() << 8) | (__v_1364.as_canonical_u64() << 16) | (__v_1365.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1368: G = G::from_u8(__u32_bytes[0]); + let __v_1369: G = G::from_u8(__u32_bytes[1]); + let __v_1370: G = G::from_u8(__u32_bytes[2]); + let __v_1371: G = G::from_u8(__u32_bytes[3]); + let __v_1372: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1368; let __vj = __v_1369; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1370; let __vj = __v_1371; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1373: G = (__v_1372 * __v_1372); + if (__v_1373 != __v_1372) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1373.as_canonical_u64(), rhs: __v_1372.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1076, &__v_1368) } else { bytes2_xor_split4_value(__v_1076, __v_1368, record) }; + let __v_1374: G = __b2_out.0; + let __v_1375: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1077, &__v_1369) } else { bytes2_xor_split4_value(__v_1077, __v_1369, record) }; + let __v_1376: G = __b2_out.0; + let __v_1377: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1078, &__v_1370) } else { bytes2_xor_split4_value(__v_1078, __v_1370, record) }; + let __v_1378: G = __b2_out.0; + let __v_1379: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1079, &__v_1371) } else { bytes2_xor_split4_value(__v_1079, __v_1371, record) }; + let __v_1380: G = __b2_out.0; + let __v_1381: G = __b2_out.1; + let __v_1382: G = (__v_1376 + __v_1379); + let __v_1383: G = (__v_1378 + __v_1381); + let __v_1384: G = (__v_1380 + __v_1375); + let __v_1385: G = (__v_1374 + __v_1377); + let __u32_sum: u128 = u128::from(((__v_1352.as_canonical_u64() << 0) | (__v_1353.as_canonical_u64() << 8) | (__v_1354.as_canonical_u64() << 16) | (__v_1355.as_canonical_u64() << 24))) + u128::from(((__v_1382.as_canonical_u64() << 0) | (__v_1383.as_canonical_u64() << 8) | (__v_1384.as_canonical_u64() << 16) | (__v_1385.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1386: G = G::from_u8(__u32_bytes[0]); + let __v_1387: G = G::from_u8(__u32_bytes[1]); + let __v_1388: G = G::from_u8(__u32_bytes[2]); + let __v_1389: G = G::from_u8(__u32_bytes[3]); + let __v_1390: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1386; let __vj = __v_1387; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1388; let __vj = __v_1389; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1391: G = G::from_u64(1); + let __v_1392: G = (__v_1390 - __v_1391); + let __v_1393: G = G::from_u64(2); + let __v_1394: G = (__v_1390 - __v_1393); + let __v_1395: G = (__v_1392 * __v_1394); + let __v_1396: G = (__v_1390 * __v_1395); + let __v_1397: G = G::from_u64(0); + if (__v_1396 != __v_1397) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1396.as_canonical_u64(), rhs: __v_1397.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1398: G = if unconstrained { Bytes2::xor(&__v_1366, &__v_1386) } else { bytes2_xor_value(__v_1366, __v_1386, record) }; + let __v_1399: G = if unconstrained { Bytes2::xor(&__v_1367, &__v_1387) } else { bytes2_xor_value(__v_1367, __v_1387, record) }; + let __v_1400: G = if unconstrained { Bytes2::xor(&__v_1364, &__v_1388) } else { bytes2_xor_value(__v_1364, __v_1388, record) }; + let __v_1401: G = if unconstrained { Bytes2::xor(&__v_1365, &__v_1389) } else { bytes2_xor_value(__v_1365, __v_1389, record) }; + let __u32_sum: u128 = u128::from(((__v_1368.as_canonical_u64() << 0) | (__v_1369.as_canonical_u64() << 8) | (__v_1370.as_canonical_u64() << 16) | (__v_1371.as_canonical_u64() << 24))) + u128::from(((__v_1399.as_canonical_u64() << 0) | (__v_1400.as_canonical_u64() << 8) | (__v_1401.as_canonical_u64() << 16) | (__v_1398.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1402: G = G::from_u8(__u32_bytes[0]); + let __v_1403: G = G::from_u8(__u32_bytes[1]); + let __v_1404: G = G::from_u8(__u32_bytes[2]); + let __v_1405: G = G::from_u8(__u32_bytes[3]); + let __v_1406: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1402; let __vj = __v_1403; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1404; let __vj = __v_1405; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1407: G = (__v_1406 * __v_1406); + if (__v_1407 != __v_1406) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1407.as_canonical_u64(), rhs: __v_1406.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1382, &__v_1402) } else { bytes2_xor_split7_value(__v_1382, __v_1402, record) }; + let __v_1408: G = __b2_out.0; + let __v_1409: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1383, &__v_1403) } else { bytes2_xor_split7_value(__v_1383, __v_1403, record) }; + let __v_1410: G = __b2_out.0; + let __v_1411: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1384, &__v_1404) } else { bytes2_xor_split7_value(__v_1384, __v_1404, record) }; + let __v_1412: G = __b2_out.0; + let __v_1413: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1385, &__v_1405) } else { bytes2_xor_split7_value(__v_1385, __v_1405, record) }; + let __v_1414: G = __b2_out.0; + let __v_1415: G = __b2_out.1; + let __v_1416: G = (__v_1408 + __v_1411); + let __v_1417: G = (__v_1410 + __v_1413); + let __v_1418: G = (__v_1412 + __v_1415); + let __v_1419: G = (__v_1414 + __v_1409); + let __u32_sum: u128 = u128::from(((__v_1182.as_canonical_u64() << 0) | (__v_1183.as_canonical_u64() << 8) | (__v_1184.as_canonical_u64() << 16) | (__v_1185.as_canonical_u64() << 24))) + u128::from(((__v_1144.as_canonical_u64() << 0) | (__v_1145.as_canonical_u64() << 8) | (__v_1146.as_canonical_u64() << 16) | (__v_1147.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1420: G = G::from_u8(__u32_bytes[0]); + let __v_1421: G = G::from_u8(__u32_bytes[1]); + let __v_1422: G = G::from_u8(__u32_bytes[2]); + let __v_1423: G = G::from_u8(__u32_bytes[3]); + let __v_1424: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1420; let __vj = __v_1421; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1422; let __vj = __v_1423; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1425: G = G::from_u64(1); + let __v_1426: G = (__v_1424 - __v_1425); + let __v_1427: G = G::from_u64(2); + let __v_1428: G = (__v_1424 - __v_1427); + let __v_1429: G = (__v_1426 * __v_1428); + let __v_1430: G = (__v_1424 * __v_1429); + let __v_1431: G = G::from_u64(0); + if (__v_1430 != __v_1431) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1430.as_canonical_u64(), rhs: __v_1431.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1432: G = if unconstrained { Bytes2::xor(&__v_991, &__v_1420) } else { bytes2_xor_value(__v_991, __v_1420, record) }; + let __v_1433: G = if unconstrained { Bytes2::xor(&__v_992, &__v_1421) } else { bytes2_xor_value(__v_992, __v_1421, record) }; + let __v_1434: G = if unconstrained { Bytes2::xor(&__v_993, &__v_1422) } else { bytes2_xor_value(__v_993, __v_1422, record) }; + let __v_1435: G = if unconstrained { Bytes2::xor(&__v_990, &__v_1423) } else { bytes2_xor_value(__v_990, __v_1423, record) }; + let __u32_sum: u128 = u128::from(((__v_1062.as_canonical_u64() << 0) | (__v_1063.as_canonical_u64() << 8) | (__v_1064.as_canonical_u64() << 16) | (__v_1065.as_canonical_u64() << 24))) + u128::from(((__v_1434.as_canonical_u64() << 0) | (__v_1435.as_canonical_u64() << 8) | (__v_1432.as_canonical_u64() << 16) | (__v_1433.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1436: G = G::from_u8(__u32_bytes[0]); + let __v_1437: G = G::from_u8(__u32_bytes[1]); + let __v_1438: G = G::from_u8(__u32_bytes[2]); + let __v_1439: G = G::from_u8(__u32_bytes[3]); + let __v_1440: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1436; let __vj = __v_1437; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1438; let __vj = __v_1439; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1441: G = (__v_1440 * __v_1440); + if (__v_1441 != __v_1440) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1441.as_canonical_u64(), rhs: __v_1440.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1144, &__v_1436) } else { bytes2_xor_split4_value(__v_1144, __v_1436, record) }; + let __v_1442: G = __b2_out.0; + let __v_1443: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1145, &__v_1437) } else { bytes2_xor_split4_value(__v_1145, __v_1437, record) }; + let __v_1444: G = __b2_out.0; + let __v_1445: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1146, &__v_1438) } else { bytes2_xor_split4_value(__v_1146, __v_1438, record) }; + let __v_1446: G = __b2_out.0; + let __v_1447: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1147, &__v_1439) } else { bytes2_xor_split4_value(__v_1147, __v_1439, record) }; + let __v_1448: G = __b2_out.0; + let __v_1449: G = __b2_out.1; + let __v_1450: G = (__v_1444 + __v_1447); + let __v_1451: G = (__v_1446 + __v_1449); + let __v_1452: G = (__v_1448 + __v_1443); + let __v_1453: G = (__v_1442 + __v_1445); + let __u32_sum: u128 = u128::from(((__v_1420.as_canonical_u64() << 0) | (__v_1421.as_canonical_u64() << 8) | (__v_1422.as_canonical_u64() << 16) | (__v_1423.as_canonical_u64() << 24))) + u128::from(((__v_1450.as_canonical_u64() << 0) | (__v_1451.as_canonical_u64() << 8) | (__v_1452.as_canonical_u64() << 16) | (__v_1453.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1454: G = G::from_u8(__u32_bytes[0]); + let __v_1455: G = G::from_u8(__u32_bytes[1]); + let __v_1456: G = G::from_u8(__u32_bytes[2]); + let __v_1457: G = G::from_u8(__u32_bytes[3]); + let __v_1458: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1454; let __vj = __v_1455; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1456; let __vj = __v_1457; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1459: G = G::from_u64(1); + let __v_1460: G = (__v_1458 - __v_1459); + let __v_1461: G = G::from_u64(2); + let __v_1462: G = (__v_1458 - __v_1461); + let __v_1463: G = (__v_1460 * __v_1462); + let __v_1464: G = (__v_1458 * __v_1463); + let __v_1465: G = G::from_u64(0); + if (__v_1464 != __v_1465) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1464.as_canonical_u64(), rhs: __v_1465.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1466: G = if unconstrained { Bytes2::xor(&__v_1434, &__v_1454) } else { bytes2_xor_value(__v_1434, __v_1454, record) }; + let __v_1467: G = if unconstrained { Bytes2::xor(&__v_1435, &__v_1455) } else { bytes2_xor_value(__v_1435, __v_1455, record) }; + let __v_1468: G = if unconstrained { Bytes2::xor(&__v_1432, &__v_1456) } else { bytes2_xor_value(__v_1432, __v_1456, record) }; + let __v_1469: G = if unconstrained { Bytes2::xor(&__v_1433, &__v_1457) } else { bytes2_xor_value(__v_1433, __v_1457, record) }; + let __u32_sum: u128 = u128::from(((__v_1436.as_canonical_u64() << 0) | (__v_1437.as_canonical_u64() << 8) | (__v_1438.as_canonical_u64() << 16) | (__v_1439.as_canonical_u64() << 24))) + u128::from(((__v_1467.as_canonical_u64() << 0) | (__v_1468.as_canonical_u64() << 8) | (__v_1469.as_canonical_u64() << 16) | (__v_1466.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1470: G = G::from_u8(__u32_bytes[0]); + let __v_1471: G = G::from_u8(__u32_bytes[1]); + let __v_1472: G = G::from_u8(__u32_bytes[2]); + let __v_1473: G = G::from_u8(__u32_bytes[3]); + let __v_1474: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1470; let __vj = __v_1471; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1472; let __vj = __v_1473; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1475: G = (__v_1474 * __v_1474); + if (__v_1475 != __v_1474) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1475.as_canonical_u64(), rhs: __v_1474.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1450, &__v_1470) } else { bytes2_xor_split7_value(__v_1450, __v_1470, record) }; + let __v_1476: G = __b2_out.0; + let __v_1477: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1451, &__v_1471) } else { bytes2_xor_split7_value(__v_1451, __v_1471, record) }; + let __v_1478: G = __b2_out.0; + let __v_1479: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1452, &__v_1472) } else { bytes2_xor_split7_value(__v_1452, __v_1472, record) }; + let __v_1480: G = __b2_out.0; + let __v_1481: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1453, &__v_1473) } else { bytes2_xor_split7_value(__v_1453, __v_1473, record) }; + let __v_1482: G = __b2_out.0; + let __v_1483: G = __b2_out.1; + let __v_1484: G = (__v_1476 + __v_1479); + let __v_1485: G = (__v_1478 + __v_1481); + let __v_1486: G = (__v_1480 + __v_1483); + let __v_1487: G = (__v_1482 + __v_1477); + let __u32_sum: u128 = u128::from(((__v_1250.as_canonical_u64() << 0) | (__v_1251.as_canonical_u64() << 8) | (__v_1252.as_canonical_u64() << 16) | (__v_1253.as_canonical_u64() << 24))) + u128::from(((__v_1348.as_canonical_u64() << 0) | (__v_1349.as_canonical_u64() << 8) | (__v_1350.as_canonical_u64() << 16) | (__v_1351.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1488: G = G::from_u8(__u32_bytes[0]); + let __v_1489: G = G::from_u8(__u32_bytes[1]); + let __v_1490: G = G::from_u8(__u32_bytes[2]); + let __v_1491: G = G::from_u8(__u32_bytes[3]); + let __v_1492: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1488; let __vj = __v_1489; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1490; let __vj = __v_1491; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1493: G = G::from_u64(1); + let __v_1494: G = (__v_1492 - __v_1493); + let __v_1495: G = G::from_u64(2); + let __v_1496: G = (__v_1492 - __v_1495); + let __v_1497: G = (__v_1494 * __v_1496); + let __v_1498: G = (__v_1492 * __v_1497); + let __v_1499: G = G::from_u64(0); + if (__v_1498 != __v_1499) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1498.as_canonical_u64(), rhs: __v_1499.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1500: G = if unconstrained { Bytes2::xor(&__v_1467, &__v_1488) } else { bytes2_xor_value(__v_1467, __v_1488, record) }; + let __v_1501: G = if unconstrained { Bytes2::xor(&__v_1468, &__v_1489) } else { bytes2_xor_value(__v_1468, __v_1489, record) }; + let __v_1502: G = if unconstrained { Bytes2::xor(&__v_1469, &__v_1490) } else { bytes2_xor_value(__v_1469, __v_1490, record) }; + let __v_1503: G = if unconstrained { Bytes2::xor(&__v_1466, &__v_1491) } else { bytes2_xor_value(__v_1466, __v_1491, record) }; + let __u32_sum: u128 = u128::from(((__v_1402.as_canonical_u64() << 0) | (__v_1403.as_canonical_u64() << 8) | (__v_1404.as_canonical_u64() << 16) | (__v_1405.as_canonical_u64() << 24))) + u128::from(((__v_1502.as_canonical_u64() << 0) | (__v_1503.as_canonical_u64() << 8) | (__v_1500.as_canonical_u64() << 16) | (__v_1501.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1504: G = G::from_u8(__u32_bytes[0]); + let __v_1505: G = G::from_u8(__u32_bytes[1]); + let __v_1506: G = G::from_u8(__u32_bytes[2]); + let __v_1507: G = G::from_u8(__u32_bytes[3]); + let __v_1508: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1504; let __vj = __v_1505; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1506; let __vj = __v_1507; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1509: G = (__v_1508 * __v_1508); + if (__v_1509 != __v_1508) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1509.as_canonical_u64(), rhs: __v_1508.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1348, &__v_1504) } else { bytes2_xor_split4_value(__v_1348, __v_1504, record) }; + let __v_1510: G = __b2_out.0; + let __v_1511: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1349, &__v_1505) } else { bytes2_xor_split4_value(__v_1349, __v_1505, record) }; + let __v_1512: G = __b2_out.0; + let __v_1513: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1350, &__v_1506) } else { bytes2_xor_split4_value(__v_1350, __v_1506, record) }; + let __v_1514: G = __b2_out.0; + let __v_1515: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1351, &__v_1507) } else { bytes2_xor_split4_value(__v_1351, __v_1507, record) }; + let __v_1516: G = __b2_out.0; + let __v_1517: G = __b2_out.1; + let __v_1518: G = (__v_1512 + __v_1515); + let __v_1519: G = (__v_1514 + __v_1517); + let __v_1520: G = (__v_1516 + __v_1511); + let __v_1521: G = (__v_1510 + __v_1513); + let __u32_sum: u128 = u128::from(((__v_1488.as_canonical_u64() << 0) | (__v_1489.as_canonical_u64() << 8) | (__v_1490.as_canonical_u64() << 16) | (__v_1491.as_canonical_u64() << 24))) + u128::from(((__v_1518.as_canonical_u64() << 0) | (__v_1519.as_canonical_u64() << 8) | (__v_1520.as_canonical_u64() << 16) | (__v_1521.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1522: G = G::from_u8(__u32_bytes[0]); + let __v_1523: G = G::from_u8(__u32_bytes[1]); + let __v_1524: G = G::from_u8(__u32_bytes[2]); + let __v_1525: G = G::from_u8(__u32_bytes[3]); + let __v_1526: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1522; let __vj = __v_1523; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1524; let __vj = __v_1525; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1527: G = G::from_u64(1); + let __v_1528: G = (__v_1526 - __v_1527); + let __v_1529: G = G::from_u64(2); + let __v_1530: G = (__v_1526 - __v_1529); + let __v_1531: G = (__v_1528 * __v_1530); + let __v_1532: G = (__v_1526 * __v_1531); + let __v_1533: G = G::from_u64(0); + if (__v_1532 != __v_1533) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1532.as_canonical_u64(), rhs: __v_1533.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1534: G = if unconstrained { Bytes2::xor(&__v_1502, &__v_1522) } else { bytes2_xor_value(__v_1502, __v_1522, record) }; + let __v_1535: G = if unconstrained { Bytes2::xor(&__v_1503, &__v_1523) } else { bytes2_xor_value(__v_1503, __v_1523, record) }; + let __v_1536: G = if unconstrained { Bytes2::xor(&__v_1500, &__v_1524) } else { bytes2_xor_value(__v_1500, __v_1524, record) }; + let __v_1537: G = if unconstrained { Bytes2::xor(&__v_1501, &__v_1525) } else { bytes2_xor_value(__v_1501, __v_1525, record) }; + let __u32_sum: u128 = u128::from(((__v_1504.as_canonical_u64() << 0) | (__v_1505.as_canonical_u64() << 8) | (__v_1506.as_canonical_u64() << 16) | (__v_1507.as_canonical_u64() << 24))) + u128::from(((__v_1535.as_canonical_u64() << 0) | (__v_1536.as_canonical_u64() << 8) | (__v_1537.as_canonical_u64() << 16) | (__v_1534.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1538: G = G::from_u8(__u32_bytes[0]); + let __v_1539: G = G::from_u8(__u32_bytes[1]); + let __v_1540: G = G::from_u8(__u32_bytes[2]); + let __v_1541: G = G::from_u8(__u32_bytes[3]); + let __v_1542: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1538; let __vj = __v_1539; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1540; let __vj = __v_1541; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1543: G = (__v_1542 * __v_1542); + if (__v_1543 != __v_1542) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1543.as_canonical_u64(), rhs: __v_1542.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1518, &__v_1538) } else { bytes2_xor_split7_value(__v_1518, __v_1538, record) }; + let __v_1544: G = __b2_out.0; + let __v_1545: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1519, &__v_1539) } else { bytes2_xor_split7_value(__v_1519, __v_1539, record) }; + let __v_1546: G = __b2_out.0; + let __v_1547: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1520, &__v_1540) } else { bytes2_xor_split7_value(__v_1520, __v_1540, record) }; + let __v_1548: G = __b2_out.0; + let __v_1549: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1521, &__v_1541) } else { bytes2_xor_split7_value(__v_1521, __v_1541, record) }; + let __v_1550: G = __b2_out.0; + let __v_1551: G = __b2_out.1; + let __v_1552: G = (__v_1544 + __v_1547); + let __v_1553: G = (__v_1546 + __v_1549); + let __v_1554: G = (__v_1548 + __v_1551); + let __v_1555: G = (__v_1550 + __v_1545); + let __u32_sum: u128 = u128::from(((__v_1318.as_canonical_u64() << 0) | (__v_1319.as_canonical_u64() << 8) | (__v_1320.as_canonical_u64() << 16) | (__v_1321.as_canonical_u64() << 24))) + u128::from(((__v_1416.as_canonical_u64() << 0) | (__v_1417.as_canonical_u64() << 8) | (__v_1418.as_canonical_u64() << 16) | (__v_1419.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1556: G = G::from_u8(__u32_bytes[0]); + let __v_1557: G = G::from_u8(__u32_bytes[1]); + let __v_1558: G = G::from_u8(__u32_bytes[2]); + let __v_1559: G = G::from_u8(__u32_bytes[3]); + let __v_1560: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1556; let __vj = __v_1557; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1558; let __vj = __v_1559; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1561: G = G::from_u64(1); + let __v_1562: G = (__v_1560 - __v_1561); + let __v_1563: G = G::from_u64(2); + let __v_1564: G = (__v_1560 - __v_1563); + let __v_1565: G = (__v_1562 * __v_1564); + let __v_1566: G = (__v_1560 * __v_1565); + let __v_1567: G = G::from_u64(0); + if (__v_1566 != __v_1567) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1566.as_canonical_u64(), rhs: __v_1567.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1568: G = if unconstrained { Bytes2::xor(&__v_1263, &__v_1556) } else { bytes2_xor_value(__v_1263, __v_1556, record) }; + let __v_1569: G = if unconstrained { Bytes2::xor(&__v_1264, &__v_1557) } else { bytes2_xor_value(__v_1264, __v_1557, record) }; + let __v_1570: G = if unconstrained { Bytes2::xor(&__v_1265, &__v_1558) } else { bytes2_xor_value(__v_1265, __v_1558, record) }; + let __v_1571: G = if unconstrained { Bytes2::xor(&__v_1262, &__v_1559) } else { bytes2_xor_value(__v_1262, __v_1559, record) }; + let __u32_sum: u128 = u128::from(((__v_1470.as_canonical_u64() << 0) | (__v_1471.as_canonical_u64() << 8) | (__v_1472.as_canonical_u64() << 16) | (__v_1473.as_canonical_u64() << 24))) + u128::from(((__v_1570.as_canonical_u64() << 0) | (__v_1571.as_canonical_u64() << 8) | (__v_1568.as_canonical_u64() << 16) | (__v_1569.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1572: G = G::from_u8(__u32_bytes[0]); + let __v_1573: G = G::from_u8(__u32_bytes[1]); + let __v_1574: G = G::from_u8(__u32_bytes[2]); + let __v_1575: G = G::from_u8(__u32_bytes[3]); + let __v_1576: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1572; let __vj = __v_1573; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1574; let __vj = __v_1575; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1577: G = (__v_1576 * __v_1576); + if (__v_1577 != __v_1576) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1577.as_canonical_u64(), rhs: __v_1576.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1416, &__v_1572) } else { bytes2_xor_split4_value(__v_1416, __v_1572, record) }; + let __v_1578: G = __b2_out.0; + let __v_1579: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1417, &__v_1573) } else { bytes2_xor_split4_value(__v_1417, __v_1573, record) }; + let __v_1580: G = __b2_out.0; + let __v_1581: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1418, &__v_1574) } else { bytes2_xor_split4_value(__v_1418, __v_1574, record) }; + let __v_1582: G = __b2_out.0; + let __v_1583: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1419, &__v_1575) } else { bytes2_xor_split4_value(__v_1419, __v_1575, record) }; + let __v_1584: G = __b2_out.0; + let __v_1585: G = __b2_out.1; + let __v_1586: G = (__v_1580 + __v_1583); + let __v_1587: G = (__v_1582 + __v_1585); + let __v_1588: G = (__v_1584 + __v_1579); + let __v_1589: G = (__v_1578 + __v_1581); + let __u32_sum: u128 = u128::from(((__v_1556.as_canonical_u64() << 0) | (__v_1557.as_canonical_u64() << 8) | (__v_1558.as_canonical_u64() << 16) | (__v_1559.as_canonical_u64() << 24))) + u128::from(((__v_1586.as_canonical_u64() << 0) | (__v_1587.as_canonical_u64() << 8) | (__v_1588.as_canonical_u64() << 16) | (__v_1589.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1590: G = G::from_u8(__u32_bytes[0]); + let __v_1591: G = G::from_u8(__u32_bytes[1]); + let __v_1592: G = G::from_u8(__u32_bytes[2]); + let __v_1593: G = G::from_u8(__u32_bytes[3]); + let __v_1594: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1590; let __vj = __v_1591; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1592; let __vj = __v_1593; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1595: G = G::from_u64(1); + let __v_1596: G = (__v_1594 - __v_1595); + let __v_1597: G = G::from_u64(2); + let __v_1598: G = (__v_1594 - __v_1597); + let __v_1599: G = (__v_1596 * __v_1598); + let __v_1600: G = (__v_1594 * __v_1599); + let __v_1601: G = G::from_u64(0); + if (__v_1600 != __v_1601) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1600.as_canonical_u64(), rhs: __v_1601.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1602: G = if unconstrained { Bytes2::xor(&__v_1570, &__v_1590) } else { bytes2_xor_value(__v_1570, __v_1590, record) }; + let __v_1603: G = if unconstrained { Bytes2::xor(&__v_1571, &__v_1591) } else { bytes2_xor_value(__v_1571, __v_1591, record) }; + let __v_1604: G = if unconstrained { Bytes2::xor(&__v_1568, &__v_1592) } else { bytes2_xor_value(__v_1568, __v_1592, record) }; + let __v_1605: G = if unconstrained { Bytes2::xor(&__v_1569, &__v_1593) } else { bytes2_xor_value(__v_1569, __v_1593, record) }; + let __u32_sum: u128 = u128::from(((__v_1572.as_canonical_u64() << 0) | (__v_1573.as_canonical_u64() << 8) | (__v_1574.as_canonical_u64() << 16) | (__v_1575.as_canonical_u64() << 24))) + u128::from(((__v_1603.as_canonical_u64() << 0) | (__v_1604.as_canonical_u64() << 8) | (__v_1605.as_canonical_u64() << 16) | (__v_1602.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1606: G = G::from_u8(__u32_bytes[0]); + let __v_1607: G = G::from_u8(__u32_bytes[1]); + let __v_1608: G = G::from_u8(__u32_bytes[2]); + let __v_1609: G = G::from_u8(__u32_bytes[3]); + let __v_1610: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1606; let __vj = __v_1607; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1608; let __vj = __v_1609; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1611: G = (__v_1610 * __v_1610); + if (__v_1611 != __v_1610) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1611.as_canonical_u64(), rhs: __v_1610.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1586, &__v_1606) } else { bytes2_xor_split7_value(__v_1586, __v_1606, record) }; + let __v_1612: G = __b2_out.0; + let __v_1613: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1587, &__v_1607) } else { bytes2_xor_split7_value(__v_1587, __v_1607, record) }; + let __v_1614: G = __b2_out.0; + let __v_1615: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1588, &__v_1608) } else { bytes2_xor_split7_value(__v_1588, __v_1608, record) }; + let __v_1616: G = __b2_out.0; + let __v_1617: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1589, &__v_1609) } else { bytes2_xor_split7_value(__v_1589, __v_1609, record) }; + let __v_1618: G = __b2_out.0; + let __v_1619: G = __b2_out.1; + let __v_1620: G = (__v_1612 + __v_1615); + let __v_1621: G = (__v_1614 + __v_1617); + let __v_1622: G = (__v_1616 + __v_1619); + let __v_1623: G = (__v_1618 + __v_1613); + let __u32_sum: u128 = u128::from(((__v_1386.as_canonical_u64() << 0) | (__v_1387.as_canonical_u64() << 8) | (__v_1388.as_canonical_u64() << 16) | (__v_1389.as_canonical_u64() << 24))) + u128::from(((__v_1484.as_canonical_u64() << 0) | (__v_1485.as_canonical_u64() << 8) | (__v_1486.as_canonical_u64() << 16) | (__v_1487.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1624: G = G::from_u8(__u32_bytes[0]); + let __v_1625: G = G::from_u8(__u32_bytes[1]); + let __v_1626: G = G::from_u8(__u32_bytes[2]); + let __v_1627: G = G::from_u8(__u32_bytes[3]); + let __v_1628: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1624; let __vj = __v_1625; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1626; let __vj = __v_1627; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1629: G = G::from_u64(1); + let __v_1630: G = (__v_1628 - __v_1629); + let __v_1631: G = G::from_u64(2); + let __v_1632: G = (__v_1628 - __v_1631); + let __v_1633: G = (__v_1630 * __v_1632); + let __v_1634: G = (__v_1628 * __v_1633); + let __v_1635: G = G::from_u64(0); + if (__v_1634 != __v_1635) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1634.as_canonical_u64(), rhs: __v_1635.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1636: G = if unconstrained { Bytes2::xor(&__v_1331, &__v_1624) } else { bytes2_xor_value(__v_1331, __v_1624, record) }; + let __v_1637: G = if unconstrained { Bytes2::xor(&__v_1332, &__v_1625) } else { bytes2_xor_value(__v_1332, __v_1625, record) }; + let __v_1638: G = if unconstrained { Bytes2::xor(&__v_1333, &__v_1626) } else { bytes2_xor_value(__v_1333, __v_1626, record) }; + let __v_1639: G = if unconstrained { Bytes2::xor(&__v_1330, &__v_1627) } else { bytes2_xor_value(__v_1330, __v_1627, record) }; + let __u32_sum: u128 = u128::from(((__v_1266.as_canonical_u64() << 0) | (__v_1267.as_canonical_u64() << 8) | (__v_1268.as_canonical_u64() << 16) | (__v_1269.as_canonical_u64() << 24))) + u128::from(((__v_1638.as_canonical_u64() << 0) | (__v_1639.as_canonical_u64() << 8) | (__v_1636.as_canonical_u64() << 16) | (__v_1637.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1640: G = G::from_u8(__u32_bytes[0]); + let __v_1641: G = G::from_u8(__u32_bytes[1]); + let __v_1642: G = G::from_u8(__u32_bytes[2]); + let __v_1643: G = G::from_u8(__u32_bytes[3]); + let __v_1644: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1640; let __vj = __v_1641; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1642; let __vj = __v_1643; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1645: G = (__v_1644 * __v_1644); + if (__v_1645 != __v_1644) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1645.as_canonical_u64(), rhs: __v_1644.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1484, &__v_1640) } else { bytes2_xor_split4_value(__v_1484, __v_1640, record) }; + let __v_1646: G = __b2_out.0; + let __v_1647: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1485, &__v_1641) } else { bytes2_xor_split4_value(__v_1485, __v_1641, record) }; + let __v_1648: G = __b2_out.0; + let __v_1649: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1486, &__v_1642) } else { bytes2_xor_split4_value(__v_1486, __v_1642, record) }; + let __v_1650: G = __b2_out.0; + let __v_1651: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1487, &__v_1643) } else { bytes2_xor_split4_value(__v_1487, __v_1643, record) }; + let __v_1652: G = __b2_out.0; + let __v_1653: G = __b2_out.1; + let __v_1654: G = (__v_1648 + __v_1651); + let __v_1655: G = (__v_1650 + __v_1653); + let __v_1656: G = (__v_1652 + __v_1647); + let __v_1657: G = (__v_1646 + __v_1649); + let __u32_sum: u128 = u128::from(((__v_1624.as_canonical_u64() << 0) | (__v_1625.as_canonical_u64() << 8) | (__v_1626.as_canonical_u64() << 16) | (__v_1627.as_canonical_u64() << 24))) + u128::from(((__v_1654.as_canonical_u64() << 0) | (__v_1655.as_canonical_u64() << 8) | (__v_1656.as_canonical_u64() << 16) | (__v_1657.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1658: G = G::from_u8(__u32_bytes[0]); + let __v_1659: G = G::from_u8(__u32_bytes[1]); + let __v_1660: G = G::from_u8(__u32_bytes[2]); + let __v_1661: G = G::from_u8(__u32_bytes[3]); + let __v_1662: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1658; let __vj = __v_1659; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1660; let __vj = __v_1661; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1663: G = G::from_u64(1); + let __v_1664: G = (__v_1662 - __v_1663); + let __v_1665: G = G::from_u64(2); + let __v_1666: G = (__v_1662 - __v_1665); + let __v_1667: G = (__v_1664 * __v_1666); + let __v_1668: G = (__v_1662 * __v_1667); + let __v_1669: G = G::from_u64(0); + if (__v_1668 != __v_1669) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1668.as_canonical_u64(), rhs: __v_1669.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1670: G = if unconstrained { Bytes2::xor(&__v_1638, &__v_1658) } else { bytes2_xor_value(__v_1638, __v_1658, record) }; + let __v_1671: G = if unconstrained { Bytes2::xor(&__v_1639, &__v_1659) } else { bytes2_xor_value(__v_1639, __v_1659, record) }; + let __v_1672: G = if unconstrained { Bytes2::xor(&__v_1636, &__v_1660) } else { bytes2_xor_value(__v_1636, __v_1660, record) }; + let __v_1673: G = if unconstrained { Bytes2::xor(&__v_1637, &__v_1661) } else { bytes2_xor_value(__v_1637, __v_1661, record) }; + let __u32_sum: u128 = u128::from(((__v_1640.as_canonical_u64() << 0) | (__v_1641.as_canonical_u64() << 8) | (__v_1642.as_canonical_u64() << 16) | (__v_1643.as_canonical_u64() << 24))) + u128::from(((__v_1671.as_canonical_u64() << 0) | (__v_1672.as_canonical_u64() << 8) | (__v_1673.as_canonical_u64() << 16) | (__v_1670.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1674: G = G::from_u8(__u32_bytes[0]); + let __v_1675: G = G::from_u8(__u32_bytes[1]); + let __v_1676: G = G::from_u8(__u32_bytes[2]); + let __v_1677: G = G::from_u8(__u32_bytes[3]); + let __v_1678: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1674; let __vj = __v_1675; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1676; let __vj = __v_1677; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1679: G = (__v_1678 * __v_1678); + if (__v_1679 != __v_1678) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1679.as_canonical_u64(), rhs: __v_1678.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1654, &__v_1674) } else { bytes2_xor_split7_value(__v_1654, __v_1674, record) }; + let __v_1680: G = __b2_out.0; + let __v_1681: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1655, &__v_1675) } else { bytes2_xor_split7_value(__v_1655, __v_1675, record) }; + let __v_1682: G = __b2_out.0; + let __v_1683: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1656, &__v_1676) } else { bytes2_xor_split7_value(__v_1656, __v_1676, record) }; + let __v_1684: G = __b2_out.0; + let __v_1685: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1657, &__v_1677) } else { bytes2_xor_split7_value(__v_1657, __v_1677, record) }; + let __v_1686: G = __b2_out.0; + let __v_1687: G = __b2_out.1; + let __v_1688: G = (__v_1680 + __v_1683); + let __v_1689: G = (__v_1682 + __v_1685); + let __v_1690: G = (__v_1684 + __v_1687); + let __v_1691: G = (__v_1686 + __v_1681); + let __u32_sum: u128 = u128::from(((__v_1454.as_canonical_u64() << 0) | (__v_1455.as_canonical_u64() << 8) | (__v_1456.as_canonical_u64() << 16) | (__v_1457.as_canonical_u64() << 24))) + u128::from(((__v_1280.as_canonical_u64() << 0) | (__v_1281.as_canonical_u64() << 8) | (__v_1282.as_canonical_u64() << 16) | (__v_1283.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1692: G = G::from_u8(__u32_bytes[0]); + let __v_1693: G = G::from_u8(__u32_bytes[1]); + let __v_1694: G = G::from_u8(__u32_bytes[2]); + let __v_1695: G = G::from_u8(__u32_bytes[3]); + let __v_1696: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1692; let __vj = __v_1693; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1694; let __vj = __v_1695; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1697: G = G::from_u64(1); + let __v_1698: G = (__v_1696 - __v_1697); + let __v_1699: G = G::from_u64(2); + let __v_1700: G = (__v_1696 - __v_1699); + let __v_1701: G = (__v_1698 * __v_1700); + let __v_1702: G = (__v_1696 * __v_1701); + let __v_1703: G = G::from_u64(0); + if (__v_1702 != __v_1703) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1702.as_canonical_u64(), rhs: __v_1703.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1704: G = if unconstrained { Bytes2::xor(&__v_1399, &__v_1692) } else { bytes2_xor_value(__v_1399, __v_1692, record) }; + let __v_1705: G = if unconstrained { Bytes2::xor(&__v_1400, &__v_1693) } else { bytes2_xor_value(__v_1400, __v_1693, record) }; + let __v_1706: G = if unconstrained { Bytes2::xor(&__v_1401, &__v_1694) } else { bytes2_xor_value(__v_1401, __v_1694, record) }; + let __v_1707: G = if unconstrained { Bytes2::xor(&__v_1398, &__v_1695) } else { bytes2_xor_value(__v_1398, __v_1695, record) }; + let __u32_sum: u128 = u128::from(((__v_1334.as_canonical_u64() << 0) | (__v_1335.as_canonical_u64() << 8) | (__v_1336.as_canonical_u64() << 16) | (__v_1337.as_canonical_u64() << 24))) + u128::from(((__v_1706.as_canonical_u64() << 0) | (__v_1707.as_canonical_u64() << 8) | (__v_1704.as_canonical_u64() << 16) | (__v_1705.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1708: G = G::from_u8(__u32_bytes[0]); + let __v_1709: G = G::from_u8(__u32_bytes[1]); + let __v_1710: G = G::from_u8(__u32_bytes[2]); + let __v_1711: G = G::from_u8(__u32_bytes[3]); + let __v_1712: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1708; let __vj = __v_1709; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1710; let __vj = __v_1711; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1713: G = (__v_1712 * __v_1712); + if (__v_1713 != __v_1712) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1713.as_canonical_u64(), rhs: __v_1712.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1280, &__v_1708) } else { bytes2_xor_split4_value(__v_1280, __v_1708, record) }; + let __v_1714: G = __b2_out.0; + let __v_1715: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1281, &__v_1709) } else { bytes2_xor_split4_value(__v_1281, __v_1709, record) }; + let __v_1716: G = __b2_out.0; + let __v_1717: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1282, &__v_1710) } else { bytes2_xor_split4_value(__v_1282, __v_1710, record) }; + let __v_1718: G = __b2_out.0; + let __v_1719: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1283, &__v_1711) } else { bytes2_xor_split4_value(__v_1283, __v_1711, record) }; + let __v_1720: G = __b2_out.0; + let __v_1721: G = __b2_out.1; + let __v_1722: G = (__v_1716 + __v_1719); + let __v_1723: G = (__v_1718 + __v_1721); + let __v_1724: G = (__v_1720 + __v_1715); + let __v_1725: G = (__v_1714 + __v_1717); + let __u32_sum: u128 = u128::from(((__v_1692.as_canonical_u64() << 0) | (__v_1693.as_canonical_u64() << 8) | (__v_1694.as_canonical_u64() << 16) | (__v_1695.as_canonical_u64() << 24))) + u128::from(((__v_1722.as_canonical_u64() << 0) | (__v_1723.as_canonical_u64() << 8) | (__v_1724.as_canonical_u64() << 16) | (__v_1725.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1726: G = G::from_u8(__u32_bytes[0]); + let __v_1727: G = G::from_u8(__u32_bytes[1]); + let __v_1728: G = G::from_u8(__u32_bytes[2]); + let __v_1729: G = G::from_u8(__u32_bytes[3]); + let __v_1730: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1726; let __vj = __v_1727; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1728; let __vj = __v_1729; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1731: G = G::from_u64(1); + let __v_1732: G = (__v_1730 - __v_1731); + let __v_1733: G = G::from_u64(2); + let __v_1734: G = (__v_1730 - __v_1733); + let __v_1735: G = (__v_1732 * __v_1734); + let __v_1736: G = (__v_1730 * __v_1735); + let __v_1737: G = G::from_u64(0); + if (__v_1736 != __v_1737) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1736.as_canonical_u64(), rhs: __v_1737.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1738: G = if unconstrained { Bytes2::xor(&__v_1706, &__v_1726) } else { bytes2_xor_value(__v_1706, __v_1726, record) }; + let __v_1739: G = if unconstrained { Bytes2::xor(&__v_1707, &__v_1727) } else { bytes2_xor_value(__v_1707, __v_1727, record) }; + let __v_1740: G = if unconstrained { Bytes2::xor(&__v_1704, &__v_1728) } else { bytes2_xor_value(__v_1704, __v_1728, record) }; + let __v_1741: G = if unconstrained { Bytes2::xor(&__v_1705, &__v_1729) } else { bytes2_xor_value(__v_1705, __v_1729, record) }; + let __u32_sum: u128 = u128::from(((__v_1708.as_canonical_u64() << 0) | (__v_1709.as_canonical_u64() << 8) | (__v_1710.as_canonical_u64() << 16) | (__v_1711.as_canonical_u64() << 24))) + u128::from(((__v_1739.as_canonical_u64() << 0) | (__v_1740.as_canonical_u64() << 8) | (__v_1741.as_canonical_u64() << 16) | (__v_1738.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1742: G = G::from_u8(__u32_bytes[0]); + let __v_1743: G = G::from_u8(__u32_bytes[1]); + let __v_1744: G = G::from_u8(__u32_bytes[2]); + let __v_1745: G = G::from_u8(__u32_bytes[3]); + let __v_1746: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1742; let __vj = __v_1743; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1744; let __vj = __v_1745; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1747: G = (__v_1746 * __v_1746); + if (__v_1747 != __v_1746) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1747.as_canonical_u64(), rhs: __v_1746.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1722, &__v_1742) } else { bytes2_xor_split7_value(__v_1722, __v_1742, record) }; + let __v_1748: G = __b2_out.0; + let __v_1749: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1723, &__v_1743) } else { bytes2_xor_split7_value(__v_1723, __v_1743, record) }; + let __v_1750: G = __b2_out.0; + let __v_1751: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1724, &__v_1744) } else { bytes2_xor_split7_value(__v_1724, __v_1744, record) }; + let __v_1752: G = __b2_out.0; + let __v_1753: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1725, &__v_1745) } else { bytes2_xor_split7_value(__v_1725, __v_1745, record) }; + let __v_1754: G = __b2_out.0; + let __v_1755: G = __b2_out.1; + let __v_1756: G = (__v_1748 + __v_1751); + let __v_1757: G = (__v_1750 + __v_1753); + let __v_1758: G = (__v_1752 + __v_1755); + let __v_1759: G = (__v_1754 + __v_1749); + let __u32_sum: u128 = u128::from(((__v_1522.as_canonical_u64() << 0) | (__v_1523.as_canonical_u64() << 8) | (__v_1524.as_canonical_u64() << 16) | (__v_1525.as_canonical_u64() << 24))) + u128::from(((__v_1756.as_canonical_u64() << 0) | (__v_1757.as_canonical_u64() << 8) | (__v_1758.as_canonical_u64() << 16) | (__v_1759.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1760: G = G::from_u8(__u32_bytes[0]); + let __v_1761: G = G::from_u8(__u32_bytes[1]); + let __v_1762: G = G::from_u8(__u32_bytes[2]); + let __v_1763: G = G::from_u8(__u32_bytes[3]); + let __v_1764: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1760; let __vj = __v_1761; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1762; let __vj = __v_1763; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1765: G = G::from_u64(1); + let __v_1766: G = (__v_1764 - __v_1765); + let __v_1767: G = G::from_u64(2); + let __v_1768: G = (__v_1764 - __v_1767); + let __v_1769: G = (__v_1766 * __v_1768); + let __v_1770: G = (__v_1764 * __v_1769); + let __v_1771: G = G::from_u64(0); + if (__v_1770 != __v_1771) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1770.as_canonical_u64(), rhs: __v_1771.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1772: G = if unconstrained { Bytes2::xor(&__v_1603, &__v_1760) } else { bytes2_xor_value(__v_1603, __v_1760, record) }; + let __v_1773: G = if unconstrained { Bytes2::xor(&__v_1604, &__v_1761) } else { bytes2_xor_value(__v_1604, __v_1761, record) }; + let __v_1774: G = if unconstrained { Bytes2::xor(&__v_1605, &__v_1762) } else { bytes2_xor_value(__v_1605, __v_1762, record) }; + let __v_1775: G = if unconstrained { Bytes2::xor(&__v_1602, &__v_1763) } else { bytes2_xor_value(__v_1602, __v_1763, record) }; + let __u32_sum: u128 = u128::from(((__v_1674.as_canonical_u64() << 0) | (__v_1675.as_canonical_u64() << 8) | (__v_1676.as_canonical_u64() << 16) | (__v_1677.as_canonical_u64() << 24))) + u128::from(((__v_1774.as_canonical_u64() << 0) | (__v_1775.as_canonical_u64() << 8) | (__v_1772.as_canonical_u64() << 16) | (__v_1773.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1776: G = G::from_u8(__u32_bytes[0]); + let __v_1777: G = G::from_u8(__u32_bytes[1]); + let __v_1778: G = G::from_u8(__u32_bytes[2]); + let __v_1779: G = G::from_u8(__u32_bytes[3]); + let __v_1780: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1776; let __vj = __v_1777; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1778; let __vj = __v_1779; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1781: G = (__v_1780 * __v_1780); + if (__v_1781 != __v_1780) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1781.as_canonical_u64(), rhs: __v_1780.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1756, &__v_1776) } else { bytes2_xor_split4_value(__v_1756, __v_1776, record) }; + let __v_1782: G = __b2_out.0; + let __v_1783: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1757, &__v_1777) } else { bytes2_xor_split4_value(__v_1757, __v_1777, record) }; + let __v_1784: G = __b2_out.0; + let __v_1785: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1758, &__v_1778) } else { bytes2_xor_split4_value(__v_1758, __v_1778, record) }; + let __v_1786: G = __b2_out.0; + let __v_1787: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1759, &__v_1779) } else { bytes2_xor_split4_value(__v_1759, __v_1779, record) }; + let __v_1788: G = __b2_out.0; + let __v_1789: G = __b2_out.1; + let __v_1790: G = (__v_1784 + __v_1787); + let __v_1791: G = (__v_1786 + __v_1789); + let __v_1792: G = (__v_1788 + __v_1783); + let __v_1793: G = (__v_1782 + __v_1785); + let __u32_sum: u128 = u128::from(((__v_1760.as_canonical_u64() << 0) | (__v_1761.as_canonical_u64() << 8) | (__v_1762.as_canonical_u64() << 16) | (__v_1763.as_canonical_u64() << 24))) + u128::from(((__v_1790.as_canonical_u64() << 0) | (__v_1791.as_canonical_u64() << 8) | (__v_1792.as_canonical_u64() << 16) | (__v_1793.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1794: G = G::from_u8(__u32_bytes[0]); + let __v_1795: G = G::from_u8(__u32_bytes[1]); + let __v_1796: G = G::from_u8(__u32_bytes[2]); + let __v_1797: G = G::from_u8(__u32_bytes[3]); + let __v_1798: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1794; let __vj = __v_1795; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1796; let __vj = __v_1797; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1799: G = G::from_u64(1); + let __v_1800: G = (__v_1798 - __v_1799); + let __v_1801: G = G::from_u64(2); + let __v_1802: G = (__v_1798 - __v_1801); + let __v_1803: G = (__v_1800 * __v_1802); + let __v_1804: G = (__v_1798 * __v_1803); + let __v_1805: G = G::from_u64(0); + if (__v_1804 != __v_1805) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1804.as_canonical_u64(), rhs: __v_1805.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1806: G = if unconstrained { Bytes2::xor(&__v_1774, &__v_1794) } else { bytes2_xor_value(__v_1774, __v_1794, record) }; + let __v_1807: G = if unconstrained { Bytes2::xor(&__v_1775, &__v_1795) } else { bytes2_xor_value(__v_1775, __v_1795, record) }; + let __v_1808: G = if unconstrained { Bytes2::xor(&__v_1772, &__v_1796) } else { bytes2_xor_value(__v_1772, __v_1796, record) }; + let __v_1809: G = if unconstrained { Bytes2::xor(&__v_1773, &__v_1797) } else { bytes2_xor_value(__v_1773, __v_1797, record) }; + let __u32_sum: u128 = u128::from(((__v_1776.as_canonical_u64() << 0) | (__v_1777.as_canonical_u64() << 8) | (__v_1778.as_canonical_u64() << 16) | (__v_1779.as_canonical_u64() << 24))) + u128::from(((__v_1807.as_canonical_u64() << 0) | (__v_1808.as_canonical_u64() << 8) | (__v_1809.as_canonical_u64() << 16) | (__v_1806.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1810: G = G::from_u8(__u32_bytes[0]); + let __v_1811: G = G::from_u8(__u32_bytes[1]); + let __v_1812: G = G::from_u8(__u32_bytes[2]); + let __v_1813: G = G::from_u8(__u32_bytes[3]); + let __v_1814: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1810; let __vj = __v_1811; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1812; let __vj = __v_1813; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1815: G = (__v_1814 * __v_1814); + if (__v_1815 != __v_1814) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1815.as_canonical_u64(), rhs: __v_1814.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1790, &__v_1810) } else { bytes2_xor_split7_value(__v_1790, __v_1810, record) }; + let __v_1816: G = __b2_out.0; + let __v_1817: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1791, &__v_1811) } else { bytes2_xor_split7_value(__v_1791, __v_1811, record) }; + let __v_1818: G = __b2_out.0; + let __v_1819: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1792, &__v_1812) } else { bytes2_xor_split7_value(__v_1792, __v_1812, record) }; + let __v_1820: G = __b2_out.0; + let __v_1821: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1793, &__v_1813) } else { bytes2_xor_split7_value(__v_1793, __v_1813, record) }; + let __v_1822: G = __b2_out.0; + let __v_1823: G = __b2_out.1; + let __v_1824: G = (__v_1816 + __v_1819); + let __v_1825: G = (__v_1818 + __v_1821); + let __v_1826: G = (__v_1820 + __v_1823); + let __v_1827: G = (__v_1822 + __v_1817); + let __u32_sum: u128 = u128::from(((__v_1590.as_canonical_u64() << 0) | (__v_1591.as_canonical_u64() << 8) | (__v_1592.as_canonical_u64() << 16) | (__v_1593.as_canonical_u64() << 24))) + u128::from(((__v_1552.as_canonical_u64() << 0) | (__v_1553.as_canonical_u64() << 8) | (__v_1554.as_canonical_u64() << 16) | (__v_1555.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1828: G = G::from_u8(__u32_bytes[0]); + let __v_1829: G = G::from_u8(__u32_bytes[1]); + let __v_1830: G = G::from_u8(__u32_bytes[2]); + let __v_1831: G = G::from_u8(__u32_bytes[3]); + let __v_1832: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1828; let __vj = __v_1829; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1830; let __vj = __v_1831; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1833: G = G::from_u64(1); + let __v_1834: G = (__v_1832 - __v_1833); + let __v_1835: G = G::from_u64(2); + let __v_1836: G = (__v_1832 - __v_1835); + let __v_1837: G = (__v_1834 * __v_1836); + let __v_1838: G = (__v_1832 * __v_1837); + let __v_1839: G = G::from_u64(0); + if (__v_1838 != __v_1839) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1838.as_canonical_u64(), rhs: __v_1839.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1840: G = if unconstrained { Bytes2::xor(&__v_1671, &__v_1828) } else { bytes2_xor_value(__v_1671, __v_1828, record) }; + let __v_1841: G = if unconstrained { Bytes2::xor(&__v_1672, &__v_1829) } else { bytes2_xor_value(__v_1672, __v_1829, record) }; + let __v_1842: G = if unconstrained { Bytes2::xor(&__v_1673, &__v_1830) } else { bytes2_xor_value(__v_1673, __v_1830, record) }; + let __v_1843: G = if unconstrained { Bytes2::xor(&__v_1670, &__v_1831) } else { bytes2_xor_value(__v_1670, __v_1831, record) }; + let __u32_sum: u128 = u128::from(((__v_1742.as_canonical_u64() << 0) | (__v_1743.as_canonical_u64() << 8) | (__v_1744.as_canonical_u64() << 16) | (__v_1745.as_canonical_u64() << 24))) + u128::from(((__v_1842.as_canonical_u64() << 0) | (__v_1843.as_canonical_u64() << 8) | (__v_1840.as_canonical_u64() << 16) | (__v_1841.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1844: G = G::from_u8(__u32_bytes[0]); + let __v_1845: G = G::from_u8(__u32_bytes[1]); + let __v_1846: G = G::from_u8(__u32_bytes[2]); + let __v_1847: G = G::from_u8(__u32_bytes[3]); + let __v_1848: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1844; let __vj = __v_1845; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1846; let __vj = __v_1847; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1849: G = (__v_1848 * __v_1848); + if (__v_1849 != __v_1848) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1849.as_canonical_u64(), rhs: __v_1848.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1552, &__v_1844) } else { bytes2_xor_split4_value(__v_1552, __v_1844, record) }; + let __v_1850: G = __b2_out.0; + let __v_1851: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1553, &__v_1845) } else { bytes2_xor_split4_value(__v_1553, __v_1845, record) }; + let __v_1852: G = __b2_out.0; + let __v_1853: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1554, &__v_1846) } else { bytes2_xor_split4_value(__v_1554, __v_1846, record) }; + let __v_1854: G = __b2_out.0; + let __v_1855: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1555, &__v_1847) } else { bytes2_xor_split4_value(__v_1555, __v_1847, record) }; + let __v_1856: G = __b2_out.0; + let __v_1857: G = __b2_out.1; + let __v_1858: G = (__v_1852 + __v_1855); + let __v_1859: G = (__v_1854 + __v_1857); + let __v_1860: G = (__v_1856 + __v_1851); + let __v_1861: G = (__v_1850 + __v_1853); + let __u32_sum: u128 = u128::from(((__v_1828.as_canonical_u64() << 0) | (__v_1829.as_canonical_u64() << 8) | (__v_1830.as_canonical_u64() << 16) | (__v_1831.as_canonical_u64() << 24))) + u128::from(((__v_1858.as_canonical_u64() << 0) | (__v_1859.as_canonical_u64() << 8) | (__v_1860.as_canonical_u64() << 16) | (__v_1861.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1862: G = G::from_u8(__u32_bytes[0]); + let __v_1863: G = G::from_u8(__u32_bytes[1]); + let __v_1864: G = G::from_u8(__u32_bytes[2]); + let __v_1865: G = G::from_u8(__u32_bytes[3]); + let __v_1866: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1862; let __vj = __v_1863; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1864; let __vj = __v_1865; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1867: G = G::from_u64(1); + let __v_1868: G = (__v_1866 - __v_1867); + let __v_1869: G = G::from_u64(2); + let __v_1870: G = (__v_1866 - __v_1869); + let __v_1871: G = (__v_1868 * __v_1870); + let __v_1872: G = (__v_1866 * __v_1871); + let __v_1873: G = G::from_u64(0); + if (__v_1872 != __v_1873) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1872.as_canonical_u64(), rhs: __v_1873.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1874: G = if unconstrained { Bytes2::xor(&__v_1842, &__v_1862) } else { bytes2_xor_value(__v_1842, __v_1862, record) }; + let __v_1875: G = if unconstrained { Bytes2::xor(&__v_1843, &__v_1863) } else { bytes2_xor_value(__v_1843, __v_1863, record) }; + let __v_1876: G = if unconstrained { Bytes2::xor(&__v_1840, &__v_1864) } else { bytes2_xor_value(__v_1840, __v_1864, record) }; + let __v_1877: G = if unconstrained { Bytes2::xor(&__v_1841, &__v_1865) } else { bytes2_xor_value(__v_1841, __v_1865, record) }; + let __u32_sum: u128 = u128::from(((__v_1844.as_canonical_u64() << 0) | (__v_1845.as_canonical_u64() << 8) | (__v_1846.as_canonical_u64() << 16) | (__v_1847.as_canonical_u64() << 24))) + u128::from(((__v_1875.as_canonical_u64() << 0) | (__v_1876.as_canonical_u64() << 8) | (__v_1877.as_canonical_u64() << 16) | (__v_1874.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1878: G = G::from_u8(__u32_bytes[0]); + let __v_1879: G = G::from_u8(__u32_bytes[1]); + let __v_1880: G = G::from_u8(__u32_bytes[2]); + let __v_1881: G = G::from_u8(__u32_bytes[3]); + let __v_1882: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1878; let __vj = __v_1879; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1880; let __vj = __v_1881; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1883: G = (__v_1882 * __v_1882); + if (__v_1883 != __v_1882) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1883.as_canonical_u64(), rhs: __v_1882.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1858, &__v_1878) } else { bytes2_xor_split7_value(__v_1858, __v_1878, record) }; + let __v_1884: G = __b2_out.0; + let __v_1885: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1859, &__v_1879) } else { bytes2_xor_split7_value(__v_1859, __v_1879, record) }; + let __v_1886: G = __b2_out.0; + let __v_1887: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1860, &__v_1880) } else { bytes2_xor_split7_value(__v_1860, __v_1880, record) }; + let __v_1888: G = __b2_out.0; + let __v_1889: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1861, &__v_1881) } else { bytes2_xor_split7_value(__v_1861, __v_1881, record) }; + let __v_1890: G = __b2_out.0; + let __v_1891: G = __b2_out.1; + let __v_1892: G = (__v_1884 + __v_1887); + let __v_1893: G = (__v_1886 + __v_1889); + let __v_1894: G = (__v_1888 + __v_1891); + let __v_1895: G = (__v_1890 + __v_1885); + let __u32_sum: u128 = u128::from(((__v_1658.as_canonical_u64() << 0) | (__v_1659.as_canonical_u64() << 8) | (__v_1660.as_canonical_u64() << 16) | (__v_1661.as_canonical_u64() << 24))) + u128::from(((__v_1620.as_canonical_u64() << 0) | (__v_1621.as_canonical_u64() << 8) | (__v_1622.as_canonical_u64() << 16) | (__v_1623.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1896: G = G::from_u8(__u32_bytes[0]); + let __v_1897: G = G::from_u8(__u32_bytes[1]); + let __v_1898: G = G::from_u8(__u32_bytes[2]); + let __v_1899: G = G::from_u8(__u32_bytes[3]); + let __v_1900: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1896; let __vj = __v_1897; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1898; let __vj = __v_1899; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1901: G = G::from_u64(1); + let __v_1902: G = (__v_1900 - __v_1901); + let __v_1903: G = G::from_u64(2); + let __v_1904: G = (__v_1900 - __v_1903); + let __v_1905: G = (__v_1902 * __v_1904); + let __v_1906: G = (__v_1900 * __v_1905); + let __v_1907: G = G::from_u64(0); + if (__v_1906 != __v_1907) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1906.as_canonical_u64(), rhs: __v_1907.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1908: G = if unconstrained { Bytes2::xor(&__v_1739, &__v_1896) } else { bytes2_xor_value(__v_1739, __v_1896, record) }; + let __v_1909: G = if unconstrained { Bytes2::xor(&__v_1740, &__v_1897) } else { bytes2_xor_value(__v_1740, __v_1897, record) }; + let __v_1910: G = if unconstrained { Bytes2::xor(&__v_1741, &__v_1898) } else { bytes2_xor_value(__v_1741, __v_1898, record) }; + let __v_1911: G = if unconstrained { Bytes2::xor(&__v_1738, &__v_1899) } else { bytes2_xor_value(__v_1738, __v_1899, record) }; + let __u32_sum: u128 = u128::from(((__v_1538.as_canonical_u64() << 0) | (__v_1539.as_canonical_u64() << 8) | (__v_1540.as_canonical_u64() << 16) | (__v_1541.as_canonical_u64() << 24))) + u128::from(((__v_1910.as_canonical_u64() << 0) | (__v_1911.as_canonical_u64() << 8) | (__v_1908.as_canonical_u64() << 16) | (__v_1909.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1912: G = G::from_u8(__u32_bytes[0]); + let __v_1913: G = G::from_u8(__u32_bytes[1]); + let __v_1914: G = G::from_u8(__u32_bytes[2]); + let __v_1915: G = G::from_u8(__u32_bytes[3]); + let __v_1916: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1912; let __vj = __v_1913; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1914; let __vj = __v_1915; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1917: G = (__v_1916 * __v_1916); + if (__v_1917 != __v_1916) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1917.as_canonical_u64(), rhs: __v_1916.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1620, &__v_1912) } else { bytes2_xor_split4_value(__v_1620, __v_1912, record) }; + let __v_1918: G = __b2_out.0; + let __v_1919: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1621, &__v_1913) } else { bytes2_xor_split4_value(__v_1621, __v_1913, record) }; + let __v_1920: G = __b2_out.0; + let __v_1921: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1622, &__v_1914) } else { bytes2_xor_split4_value(__v_1622, __v_1914, record) }; + let __v_1922: G = __b2_out.0; + let __v_1923: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1623, &__v_1915) } else { bytes2_xor_split4_value(__v_1623, __v_1915, record) }; + let __v_1924: G = __b2_out.0; + let __v_1925: G = __b2_out.1; + let __v_1926: G = (__v_1920 + __v_1923); + let __v_1927: G = (__v_1922 + __v_1925); + let __v_1928: G = (__v_1924 + __v_1919); + let __v_1929: G = (__v_1918 + __v_1921); + let __u32_sum: u128 = u128::from(((__v_1896.as_canonical_u64() << 0) | (__v_1897.as_canonical_u64() << 8) | (__v_1898.as_canonical_u64() << 16) | (__v_1899.as_canonical_u64() << 24))) + u128::from(((__v_1926.as_canonical_u64() << 0) | (__v_1927.as_canonical_u64() << 8) | (__v_1928.as_canonical_u64() << 16) | (__v_1929.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1930: G = G::from_u8(__u32_bytes[0]); + let __v_1931: G = G::from_u8(__u32_bytes[1]); + let __v_1932: G = G::from_u8(__u32_bytes[2]); + let __v_1933: G = G::from_u8(__u32_bytes[3]); + let __v_1934: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1930; let __vj = __v_1931; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1932; let __vj = __v_1933; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1935: G = G::from_u64(1); + let __v_1936: G = (__v_1934 - __v_1935); + let __v_1937: G = G::from_u64(2); + let __v_1938: G = (__v_1934 - __v_1937); + let __v_1939: G = (__v_1936 * __v_1938); + let __v_1940: G = (__v_1934 * __v_1939); + let __v_1941: G = G::from_u64(0); + if (__v_1940 != __v_1941) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1940.as_canonical_u64(), rhs: __v_1941.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1942: G = if unconstrained { Bytes2::xor(&__v_1910, &__v_1930) } else { bytes2_xor_value(__v_1910, __v_1930, record) }; + let __v_1943: G = if unconstrained { Bytes2::xor(&__v_1911, &__v_1931) } else { bytes2_xor_value(__v_1911, __v_1931, record) }; + let __v_1944: G = if unconstrained { Bytes2::xor(&__v_1908, &__v_1932) } else { bytes2_xor_value(__v_1908, __v_1932, record) }; + let __v_1945: G = if unconstrained { Bytes2::xor(&__v_1909, &__v_1933) } else { bytes2_xor_value(__v_1909, __v_1933, record) }; + let __u32_sum: u128 = u128::from(((__v_1912.as_canonical_u64() << 0) | (__v_1913.as_canonical_u64() << 8) | (__v_1914.as_canonical_u64() << 16) | (__v_1915.as_canonical_u64() << 24))) + u128::from(((__v_1943.as_canonical_u64() << 0) | (__v_1944.as_canonical_u64() << 8) | (__v_1945.as_canonical_u64() << 16) | (__v_1942.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1946: G = G::from_u8(__u32_bytes[0]); + let __v_1947: G = G::from_u8(__u32_bytes[1]); + let __v_1948: G = G::from_u8(__u32_bytes[2]); + let __v_1949: G = G::from_u8(__u32_bytes[3]); + let __v_1950: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1946; let __vj = __v_1947; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1948; let __vj = __v_1949; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1951: G = (__v_1950 * __v_1950); + if (__v_1951 != __v_1950) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1951.as_canonical_u64(), rhs: __v_1950.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1926, &__v_1946) } else { bytes2_xor_split7_value(__v_1926, __v_1946, record) }; + let __v_1952: G = __b2_out.0; + let __v_1953: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1927, &__v_1947) } else { bytes2_xor_split7_value(__v_1927, __v_1947, record) }; + let __v_1954: G = __b2_out.0; + let __v_1955: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1928, &__v_1948) } else { bytes2_xor_split7_value(__v_1928, __v_1948, record) }; + let __v_1956: G = __b2_out.0; + let __v_1957: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1929, &__v_1949) } else { bytes2_xor_split7_value(__v_1929, __v_1949, record) }; + let __v_1958: G = __b2_out.0; + let __v_1959: G = __b2_out.1; + let __v_1960: G = (__v_1952 + __v_1955); + let __v_1961: G = (__v_1954 + __v_1957); + let __v_1962: G = (__v_1956 + __v_1959); + let __v_1963: G = (__v_1958 + __v_1953); + let __u32_sum: u128 = u128::from(((__v_1726.as_canonical_u64() << 0) | (__v_1727.as_canonical_u64() << 8) | (__v_1728.as_canonical_u64() << 16) | (__v_1729.as_canonical_u64() << 24))) + u128::from(((__v_1688.as_canonical_u64() << 0) | (__v_1689.as_canonical_u64() << 8) | (__v_1690.as_canonical_u64() << 16) | (__v_1691.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1964: G = G::from_u8(__u32_bytes[0]); + let __v_1965: G = G::from_u8(__u32_bytes[1]); + let __v_1966: G = G::from_u8(__u32_bytes[2]); + let __v_1967: G = G::from_u8(__u32_bytes[3]); + let __v_1968: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1964; let __vj = __v_1965; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1966; let __vj = __v_1967; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1969: G = G::from_u64(1); + let __v_1970: G = (__v_1968 - __v_1969); + let __v_1971: G = G::from_u64(2); + let __v_1972: G = (__v_1968 - __v_1971); + let __v_1973: G = (__v_1970 * __v_1972); + let __v_1974: G = (__v_1968 * __v_1973); + let __v_1975: G = G::from_u64(0); + if (__v_1974 != __v_1975) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1974.as_canonical_u64(), rhs: __v_1975.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1976: G = if unconstrained { Bytes2::xor(&__v_1535, &__v_1964) } else { bytes2_xor_value(__v_1535, __v_1964, record) }; + let __v_1977: G = if unconstrained { Bytes2::xor(&__v_1536, &__v_1965) } else { bytes2_xor_value(__v_1536, __v_1965, record) }; + let __v_1978: G = if unconstrained { Bytes2::xor(&__v_1537, &__v_1966) } else { bytes2_xor_value(__v_1537, __v_1966, record) }; + let __v_1979: G = if unconstrained { Bytes2::xor(&__v_1534, &__v_1967) } else { bytes2_xor_value(__v_1534, __v_1967, record) }; + let __u32_sum: u128 = u128::from(((__v_1606.as_canonical_u64() << 0) | (__v_1607.as_canonical_u64() << 8) | (__v_1608.as_canonical_u64() << 16) | (__v_1609.as_canonical_u64() << 24))) + u128::from(((__v_1978.as_canonical_u64() << 0) | (__v_1979.as_canonical_u64() << 8) | (__v_1976.as_canonical_u64() << 16) | (__v_1977.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1980: G = G::from_u8(__u32_bytes[0]); + let __v_1981: G = G::from_u8(__u32_bytes[1]); + let __v_1982: G = G::from_u8(__u32_bytes[2]); + let __v_1983: G = G::from_u8(__u32_bytes[3]); + let __v_1984: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1980; let __vj = __v_1981; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1982; let __vj = __v_1983; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1985: G = (__v_1984 * __v_1984); + if (__v_1985 != __v_1984) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1985.as_canonical_u64(), rhs: __v_1984.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1688, &__v_1980) } else { bytes2_xor_split4_value(__v_1688, __v_1980, record) }; + let __v_1986: G = __b2_out.0; + let __v_1987: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1689, &__v_1981) } else { bytes2_xor_split4_value(__v_1689, __v_1981, record) }; + let __v_1988: G = __b2_out.0; + let __v_1989: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1690, &__v_1982) } else { bytes2_xor_split4_value(__v_1690, __v_1982, record) }; + let __v_1990: G = __b2_out.0; + let __v_1991: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1691, &__v_1983) } else { bytes2_xor_split4_value(__v_1691, __v_1983, record) }; + let __v_1992: G = __b2_out.0; + let __v_1993: G = __b2_out.1; + let __v_1994: G = (__v_1988 + __v_1991); + let __v_1995: G = (__v_1990 + __v_1993); + let __v_1996: G = (__v_1992 + __v_1987); + let __v_1997: G = (__v_1986 + __v_1989); + let __u32_sum: u128 = u128::from(((__v_1964.as_canonical_u64() << 0) | (__v_1965.as_canonical_u64() << 8) | (__v_1966.as_canonical_u64() << 16) | (__v_1967.as_canonical_u64() << 24))) + u128::from(((__v_1994.as_canonical_u64() << 0) | (__v_1995.as_canonical_u64() << 8) | (__v_1996.as_canonical_u64() << 16) | (__v_1997.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1998: G = G::from_u8(__u32_bytes[0]); + let __v_1999: G = G::from_u8(__u32_bytes[1]); + let __v_2000: G = G::from_u8(__u32_bytes[2]); + let __v_2001: G = G::from_u8(__u32_bytes[3]); + let __v_2002: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1998; let __vj = __v_1999; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2000; let __vj = __v_2001; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2003: G = G::from_u64(1); + let __v_2004: G = (__v_2002 - __v_2003); + let __v_2005: G = G::from_u64(2); + let __v_2006: G = (__v_2002 - __v_2005); + let __v_2007: G = (__v_2004 * __v_2006); + let __v_2008: G = (__v_2002 * __v_2007); + let __v_2009: G = G::from_u64(0); + if (__v_2008 != __v_2009) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2008.as_canonical_u64(), rhs: __v_2009.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2010: G = if unconstrained { Bytes2::xor(&__v_1978, &__v_1998) } else { bytes2_xor_value(__v_1978, __v_1998, record) }; + let __v_2011: G = if unconstrained { Bytes2::xor(&__v_1979, &__v_1999) } else { bytes2_xor_value(__v_1979, __v_1999, record) }; + let __v_2012: G = if unconstrained { Bytes2::xor(&__v_1976, &__v_2000) } else { bytes2_xor_value(__v_1976, __v_2000, record) }; + let __v_2013: G = if unconstrained { Bytes2::xor(&__v_1977, &__v_2001) } else { bytes2_xor_value(__v_1977, __v_2001, record) }; + let __u32_sum: u128 = u128::from(((__v_1980.as_canonical_u64() << 0) | (__v_1981.as_canonical_u64() << 8) | (__v_1982.as_canonical_u64() << 16) | (__v_1983.as_canonical_u64() << 24))) + u128::from(((__v_2011.as_canonical_u64() << 0) | (__v_2012.as_canonical_u64() << 8) | (__v_2013.as_canonical_u64() << 16) | (__v_2010.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2014: G = G::from_u8(__u32_bytes[0]); + let __v_2015: G = G::from_u8(__u32_bytes[1]); + let __v_2016: G = G::from_u8(__u32_bytes[2]); + let __v_2017: G = G::from_u8(__u32_bytes[3]); + let __v_2018: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2014; let __vj = __v_2015; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2016; let __vj = __v_2017; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2019: G = (__v_2018 * __v_2018); + if (__v_2019 != __v_2018) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2019.as_canonical_u64(), rhs: __v_2018.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1994, &__v_2014) } else { bytes2_xor_split7_value(__v_1994, __v_2014, record) }; + let __v_2020: G = __b2_out.0; + let __v_2021: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1995, &__v_2015) } else { bytes2_xor_split7_value(__v_1995, __v_2015, record) }; + let __v_2022: G = __b2_out.0; + let __v_2023: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1996, &__v_2016) } else { bytes2_xor_split7_value(__v_1996, __v_2016, record) }; + let __v_2024: G = __b2_out.0; + let __v_2025: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1997, &__v_2017) } else { bytes2_xor_split7_value(__v_1997, __v_2017, record) }; + let __v_2026: G = __b2_out.0; + let __v_2027: G = __b2_out.1; + let __v_2028: G = (__v_2020 + __v_2023); + let __v_2029: G = (__v_2022 + __v_2025); + let __v_2030: G = (__v_2024 + __v_2027); + let __v_2031: G = (__v_2026 + __v_2021); + let __u32_sum: u128 = u128::from(((__v_1794.as_canonical_u64() << 0) | (__v_1795.as_canonical_u64() << 8) | (__v_1796.as_canonical_u64() << 16) | (__v_1797.as_canonical_u64() << 24))) + u128::from(((__v_1892.as_canonical_u64() << 0) | (__v_1893.as_canonical_u64() << 8) | (__v_1894.as_canonical_u64() << 16) | (__v_1895.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2032: G = G::from_u8(__u32_bytes[0]); + let __v_2033: G = G::from_u8(__u32_bytes[1]); + let __v_2034: G = G::from_u8(__u32_bytes[2]); + let __v_2035: G = G::from_u8(__u32_bytes[3]); + let __v_2036: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2032; let __vj = __v_2033; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2034; let __vj = __v_2035; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2037: G = G::from_u64(1); + let __v_2038: G = (__v_2036 - __v_2037); + let __v_2039: G = G::from_u64(2); + let __v_2040: G = (__v_2036 - __v_2039); + let __v_2041: G = (__v_2038 * __v_2040); + let __v_2042: G = (__v_2036 * __v_2041); + let __v_2043: G = G::from_u64(0); + if (__v_2042 != __v_2043) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2042.as_canonical_u64(), rhs: __v_2043.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2044: G = if unconstrained { Bytes2::xor(&__v_2011, &__v_2032) } else { bytes2_xor_value(__v_2011, __v_2032, record) }; + let __v_2045: G = if unconstrained { Bytes2::xor(&__v_2012, &__v_2033) } else { bytes2_xor_value(__v_2012, __v_2033, record) }; + let __v_2046: G = if unconstrained { Bytes2::xor(&__v_2013, &__v_2034) } else { bytes2_xor_value(__v_2013, __v_2034, record) }; + let __v_2047: G = if unconstrained { Bytes2::xor(&__v_2010, &__v_2035) } else { bytes2_xor_value(__v_2010, __v_2035, record) }; + let __u32_sum: u128 = u128::from(((__v_1946.as_canonical_u64() << 0) | (__v_1947.as_canonical_u64() << 8) | (__v_1948.as_canonical_u64() << 16) | (__v_1949.as_canonical_u64() << 24))) + u128::from(((__v_2046.as_canonical_u64() << 0) | (__v_2047.as_canonical_u64() << 8) | (__v_2044.as_canonical_u64() << 16) | (__v_2045.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2048: G = G::from_u8(__u32_bytes[0]); + let __v_2049: G = G::from_u8(__u32_bytes[1]); + let __v_2050: G = G::from_u8(__u32_bytes[2]); + let __v_2051: G = G::from_u8(__u32_bytes[3]); + let __v_2052: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2048; let __vj = __v_2049; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2050; let __vj = __v_2051; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2053: G = (__v_2052 * __v_2052); + if (__v_2053 != __v_2052) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2053.as_canonical_u64(), rhs: __v_2052.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1892, &__v_2048) } else { bytes2_xor_split4_value(__v_1892, __v_2048, record) }; + let __v_2054: G = __b2_out.0; + let __v_2055: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1893, &__v_2049) } else { bytes2_xor_split4_value(__v_1893, __v_2049, record) }; + let __v_2056: G = __b2_out.0; + let __v_2057: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1894, &__v_2050) } else { bytes2_xor_split4_value(__v_1894, __v_2050, record) }; + let __v_2058: G = __b2_out.0; + let __v_2059: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1895, &__v_2051) } else { bytes2_xor_split4_value(__v_1895, __v_2051, record) }; + let __v_2060: G = __b2_out.0; + let __v_2061: G = __b2_out.1; + let __v_2062: G = (__v_2056 + __v_2059); + let __v_2063: G = (__v_2058 + __v_2061); + let __v_2064: G = (__v_2060 + __v_2055); + let __v_2065: G = (__v_2054 + __v_2057); + let __u32_sum: u128 = u128::from(((__v_2032.as_canonical_u64() << 0) | (__v_2033.as_canonical_u64() << 8) | (__v_2034.as_canonical_u64() << 16) | (__v_2035.as_canonical_u64() << 24))) + u128::from(((__v_2062.as_canonical_u64() << 0) | (__v_2063.as_canonical_u64() << 8) | (__v_2064.as_canonical_u64() << 16) | (__v_2065.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2066: G = G::from_u8(__u32_bytes[0]); + let __v_2067: G = G::from_u8(__u32_bytes[1]); + let __v_2068: G = G::from_u8(__u32_bytes[2]); + let __v_2069: G = G::from_u8(__u32_bytes[3]); + let __v_2070: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2066; let __vj = __v_2067; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2068; let __vj = __v_2069; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2071: G = G::from_u64(1); + let __v_2072: G = (__v_2070 - __v_2071); + let __v_2073: G = G::from_u64(2); + let __v_2074: G = (__v_2070 - __v_2073); + let __v_2075: G = (__v_2072 * __v_2074); + let __v_2076: G = (__v_2070 * __v_2075); + let __v_2077: G = G::from_u64(0); + if (__v_2076 != __v_2077) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2076.as_canonical_u64(), rhs: __v_2077.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2078: G = if unconstrained { Bytes2::xor(&__v_2046, &__v_2066) } else { bytes2_xor_value(__v_2046, __v_2066, record) }; + let __v_2079: G = if unconstrained { Bytes2::xor(&__v_2047, &__v_2067) } else { bytes2_xor_value(__v_2047, __v_2067, record) }; + let __v_2080: G = if unconstrained { Bytes2::xor(&__v_2044, &__v_2068) } else { bytes2_xor_value(__v_2044, __v_2068, record) }; + let __v_2081: G = if unconstrained { Bytes2::xor(&__v_2045, &__v_2069) } else { bytes2_xor_value(__v_2045, __v_2069, record) }; + let __u32_sum: u128 = u128::from(((__v_2048.as_canonical_u64() << 0) | (__v_2049.as_canonical_u64() << 8) | (__v_2050.as_canonical_u64() << 16) | (__v_2051.as_canonical_u64() << 24))) + u128::from(((__v_2079.as_canonical_u64() << 0) | (__v_2080.as_canonical_u64() << 8) | (__v_2081.as_canonical_u64() << 16) | (__v_2078.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2082: G = G::from_u8(__u32_bytes[0]); + let __v_2083: G = G::from_u8(__u32_bytes[1]); + let __v_2084: G = G::from_u8(__u32_bytes[2]); + let __v_2085: G = G::from_u8(__u32_bytes[3]); + let __v_2086: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2082; let __vj = __v_2083; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2084; let __vj = __v_2085; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2087: G = (__v_2086 * __v_2086); + if (__v_2087 != __v_2086) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2087.as_canonical_u64(), rhs: __v_2086.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2062, &__v_2082) } else { bytes2_xor_split7_value(__v_2062, __v_2082, record) }; + let __v_2088: G = __b2_out.0; + let __v_2089: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2063, &__v_2083) } else { bytes2_xor_split7_value(__v_2063, __v_2083, record) }; + let __v_2090: G = __b2_out.0; + let __v_2091: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2064, &__v_2084) } else { bytes2_xor_split7_value(__v_2064, __v_2084, record) }; + let __v_2092: G = __b2_out.0; + let __v_2093: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2065, &__v_2085) } else { bytes2_xor_split7_value(__v_2065, __v_2085, record) }; + let __v_2094: G = __b2_out.0; + let __v_2095: G = __b2_out.1; + let __v_2096: G = (__v_2088 + __v_2091); + let __v_2097: G = (__v_2090 + __v_2093); + let __v_2098: G = (__v_2092 + __v_2095); + let __v_2099: G = (__v_2094 + __v_2089); + let __u32_sum: u128 = u128::from(((__v_1862.as_canonical_u64() << 0) | (__v_1863.as_canonical_u64() << 8) | (__v_1864.as_canonical_u64() << 16) | (__v_1865.as_canonical_u64() << 24))) + u128::from(((__v_1960.as_canonical_u64() << 0) | (__v_1961.as_canonical_u64() << 8) | (__v_1962.as_canonical_u64() << 16) | (__v_1963.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2100: G = G::from_u8(__u32_bytes[0]); + let __v_2101: G = G::from_u8(__u32_bytes[1]); + let __v_2102: G = G::from_u8(__u32_bytes[2]); + let __v_2103: G = G::from_u8(__u32_bytes[3]); + let __v_2104: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2100; let __vj = __v_2101; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2102; let __vj = __v_2103; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2105: G = G::from_u64(1); + let __v_2106: G = (__v_2104 - __v_2105); + let __v_2107: G = G::from_u64(2); + let __v_2108: G = (__v_2104 - __v_2107); + let __v_2109: G = (__v_2106 * __v_2108); + let __v_2110: G = (__v_2104 * __v_2109); + let __v_2111: G = G::from_u64(0); + if (__v_2110 != __v_2111) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2110.as_canonical_u64(), rhs: __v_2111.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2112: G = if unconstrained { Bytes2::xor(&__v_1807, &__v_2100) } else { bytes2_xor_value(__v_1807, __v_2100, record) }; + let __v_2113: G = if unconstrained { Bytes2::xor(&__v_1808, &__v_2101) } else { bytes2_xor_value(__v_1808, __v_2101, record) }; + let __v_2114: G = if unconstrained { Bytes2::xor(&__v_1809, &__v_2102) } else { bytes2_xor_value(__v_1809, __v_2102, record) }; + let __v_2115: G = if unconstrained { Bytes2::xor(&__v_1806, &__v_2103) } else { bytes2_xor_value(__v_1806, __v_2103, record) }; + let __u32_sum: u128 = u128::from(((__v_2014.as_canonical_u64() << 0) | (__v_2015.as_canonical_u64() << 8) | (__v_2016.as_canonical_u64() << 16) | (__v_2017.as_canonical_u64() << 24))) + u128::from(((__v_2114.as_canonical_u64() << 0) | (__v_2115.as_canonical_u64() << 8) | (__v_2112.as_canonical_u64() << 16) | (__v_2113.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2116: G = G::from_u8(__u32_bytes[0]); + let __v_2117: G = G::from_u8(__u32_bytes[1]); + let __v_2118: G = G::from_u8(__u32_bytes[2]); + let __v_2119: G = G::from_u8(__u32_bytes[3]); + let __v_2120: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2116; let __vj = __v_2117; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2118; let __vj = __v_2119; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2121: G = (__v_2120 * __v_2120); + if (__v_2121 != __v_2120) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2121.as_canonical_u64(), rhs: __v_2120.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1960, &__v_2116) } else { bytes2_xor_split4_value(__v_1960, __v_2116, record) }; + let __v_2122: G = __b2_out.0; + let __v_2123: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1961, &__v_2117) } else { bytes2_xor_split4_value(__v_1961, __v_2117, record) }; + let __v_2124: G = __b2_out.0; + let __v_2125: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1962, &__v_2118) } else { bytes2_xor_split4_value(__v_1962, __v_2118, record) }; + let __v_2126: G = __b2_out.0; + let __v_2127: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1963, &__v_2119) } else { bytes2_xor_split4_value(__v_1963, __v_2119, record) }; + let __v_2128: G = __b2_out.0; + let __v_2129: G = __b2_out.1; + let __v_2130: G = (__v_2124 + __v_2127); + let __v_2131: G = (__v_2126 + __v_2129); + let __v_2132: G = (__v_2128 + __v_2123); + let __v_2133: G = (__v_2122 + __v_2125); + let __u32_sum: u128 = u128::from(((__v_2100.as_canonical_u64() << 0) | (__v_2101.as_canonical_u64() << 8) | (__v_2102.as_canonical_u64() << 16) | (__v_2103.as_canonical_u64() << 24))) + u128::from(((__v_2130.as_canonical_u64() << 0) | (__v_2131.as_canonical_u64() << 8) | (__v_2132.as_canonical_u64() << 16) | (__v_2133.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2134: G = G::from_u8(__u32_bytes[0]); + let __v_2135: G = G::from_u8(__u32_bytes[1]); + let __v_2136: G = G::from_u8(__u32_bytes[2]); + let __v_2137: G = G::from_u8(__u32_bytes[3]); + let __v_2138: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2134; let __vj = __v_2135; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2136; let __vj = __v_2137; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2139: G = G::from_u64(1); + let __v_2140: G = (__v_2138 - __v_2139); + let __v_2141: G = G::from_u64(2); + let __v_2142: G = (__v_2138 - __v_2141); + let __v_2143: G = (__v_2140 * __v_2142); + let __v_2144: G = (__v_2138 * __v_2143); + let __v_2145: G = G::from_u64(0); + if (__v_2144 != __v_2145) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2144.as_canonical_u64(), rhs: __v_2145.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2146: G = if unconstrained { Bytes2::xor(&__v_2114, &__v_2134) } else { bytes2_xor_value(__v_2114, __v_2134, record) }; + let __v_2147: G = if unconstrained { Bytes2::xor(&__v_2115, &__v_2135) } else { bytes2_xor_value(__v_2115, __v_2135, record) }; + let __v_2148: G = if unconstrained { Bytes2::xor(&__v_2112, &__v_2136) } else { bytes2_xor_value(__v_2112, __v_2136, record) }; + let __v_2149: G = if unconstrained { Bytes2::xor(&__v_2113, &__v_2137) } else { bytes2_xor_value(__v_2113, __v_2137, record) }; + let __u32_sum: u128 = u128::from(((__v_2116.as_canonical_u64() << 0) | (__v_2117.as_canonical_u64() << 8) | (__v_2118.as_canonical_u64() << 16) | (__v_2119.as_canonical_u64() << 24))) + u128::from(((__v_2147.as_canonical_u64() << 0) | (__v_2148.as_canonical_u64() << 8) | (__v_2149.as_canonical_u64() << 16) | (__v_2146.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2150: G = G::from_u8(__u32_bytes[0]); + let __v_2151: G = G::from_u8(__u32_bytes[1]); + let __v_2152: G = G::from_u8(__u32_bytes[2]); + let __v_2153: G = G::from_u8(__u32_bytes[3]); + let __v_2154: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2150; let __vj = __v_2151; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2152; let __vj = __v_2153; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2155: G = (__v_2154 * __v_2154); + if (__v_2155 != __v_2154) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2155.as_canonical_u64(), rhs: __v_2154.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2130, &__v_2150) } else { bytes2_xor_split7_value(__v_2130, __v_2150, record) }; + let __v_2156: G = __b2_out.0; + let __v_2157: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2131, &__v_2151) } else { bytes2_xor_split7_value(__v_2131, __v_2151, record) }; + let __v_2158: G = __b2_out.0; + let __v_2159: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2132, &__v_2152) } else { bytes2_xor_split7_value(__v_2132, __v_2152, record) }; + let __v_2160: G = __b2_out.0; + let __v_2161: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2133, &__v_2153) } else { bytes2_xor_split7_value(__v_2133, __v_2153, record) }; + let __v_2162: G = __b2_out.0; + let __v_2163: G = __b2_out.1; + let __v_2164: G = (__v_2156 + __v_2159); + let __v_2165: G = (__v_2158 + __v_2161); + let __v_2166: G = (__v_2160 + __v_2163); + let __v_2167: G = (__v_2162 + __v_2157); + let __u32_sum: u128 = u128::from(((__v_1930.as_canonical_u64() << 0) | (__v_1931.as_canonical_u64() << 8) | (__v_1932.as_canonical_u64() << 16) | (__v_1933.as_canonical_u64() << 24))) + u128::from(((__v_2028.as_canonical_u64() << 0) | (__v_2029.as_canonical_u64() << 8) | (__v_2030.as_canonical_u64() << 16) | (__v_2031.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2168: G = G::from_u8(__u32_bytes[0]); + let __v_2169: G = G::from_u8(__u32_bytes[1]); + let __v_2170: G = G::from_u8(__u32_bytes[2]); + let __v_2171: G = G::from_u8(__u32_bytes[3]); + let __v_2172: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2168; let __vj = __v_2169; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2170; let __vj = __v_2171; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2173: G = G::from_u64(1); + let __v_2174: G = (__v_2172 - __v_2173); + let __v_2175: G = G::from_u64(2); + let __v_2176: G = (__v_2172 - __v_2175); + let __v_2177: G = (__v_2174 * __v_2176); + let __v_2178: G = (__v_2172 * __v_2177); + let __v_2179: G = G::from_u64(0); + if (__v_2178 != __v_2179) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2178.as_canonical_u64(), rhs: __v_2179.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2180: G = if unconstrained { Bytes2::xor(&__v_1875, &__v_2168) } else { bytes2_xor_value(__v_1875, __v_2168, record) }; + let __v_2181: G = if unconstrained { Bytes2::xor(&__v_1876, &__v_2169) } else { bytes2_xor_value(__v_1876, __v_2169, record) }; + let __v_2182: G = if unconstrained { Bytes2::xor(&__v_1877, &__v_2170) } else { bytes2_xor_value(__v_1877, __v_2170, record) }; + let __v_2183: G = if unconstrained { Bytes2::xor(&__v_1874, &__v_2171) } else { bytes2_xor_value(__v_1874, __v_2171, record) }; + let __u32_sum: u128 = u128::from(((__v_1810.as_canonical_u64() << 0) | (__v_1811.as_canonical_u64() << 8) | (__v_1812.as_canonical_u64() << 16) | (__v_1813.as_canonical_u64() << 24))) + u128::from(((__v_2182.as_canonical_u64() << 0) | (__v_2183.as_canonical_u64() << 8) | (__v_2180.as_canonical_u64() << 16) | (__v_2181.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2184: G = G::from_u8(__u32_bytes[0]); + let __v_2185: G = G::from_u8(__u32_bytes[1]); + let __v_2186: G = G::from_u8(__u32_bytes[2]); + let __v_2187: G = G::from_u8(__u32_bytes[3]); + let __v_2188: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2184; let __vj = __v_2185; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2186; let __vj = __v_2187; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2189: G = (__v_2188 * __v_2188); + if (__v_2189 != __v_2188) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2189.as_canonical_u64(), rhs: __v_2188.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2028, &__v_2184) } else { bytes2_xor_split4_value(__v_2028, __v_2184, record) }; + let __v_2190: G = __b2_out.0; + let __v_2191: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2029, &__v_2185) } else { bytes2_xor_split4_value(__v_2029, __v_2185, record) }; + let __v_2192: G = __b2_out.0; + let __v_2193: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2030, &__v_2186) } else { bytes2_xor_split4_value(__v_2030, __v_2186, record) }; + let __v_2194: G = __b2_out.0; + let __v_2195: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2031, &__v_2187) } else { bytes2_xor_split4_value(__v_2031, __v_2187, record) }; + let __v_2196: G = __b2_out.0; + let __v_2197: G = __b2_out.1; + let __v_2198: G = (__v_2192 + __v_2195); + let __v_2199: G = (__v_2194 + __v_2197); + let __v_2200: G = (__v_2196 + __v_2191); + let __v_2201: G = (__v_2190 + __v_2193); + let __u32_sum: u128 = u128::from(((__v_2168.as_canonical_u64() << 0) | (__v_2169.as_canonical_u64() << 8) | (__v_2170.as_canonical_u64() << 16) | (__v_2171.as_canonical_u64() << 24))) + u128::from(((__v_2198.as_canonical_u64() << 0) | (__v_2199.as_canonical_u64() << 8) | (__v_2200.as_canonical_u64() << 16) | (__v_2201.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2202: G = G::from_u8(__u32_bytes[0]); + let __v_2203: G = G::from_u8(__u32_bytes[1]); + let __v_2204: G = G::from_u8(__u32_bytes[2]); + let __v_2205: G = G::from_u8(__u32_bytes[3]); + let __v_2206: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2202; let __vj = __v_2203; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2204; let __vj = __v_2205; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2207: G = G::from_u64(1); + let __v_2208: G = (__v_2206 - __v_2207); + let __v_2209: G = G::from_u64(2); + let __v_2210: G = (__v_2206 - __v_2209); + let __v_2211: G = (__v_2208 * __v_2210); + let __v_2212: G = (__v_2206 * __v_2211); + let __v_2213: G = G::from_u64(0); + if (__v_2212 != __v_2213) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2212.as_canonical_u64(), rhs: __v_2213.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2214: G = if unconstrained { Bytes2::xor(&__v_2182, &__v_2202) } else { bytes2_xor_value(__v_2182, __v_2202, record) }; + let __v_2215: G = if unconstrained { Bytes2::xor(&__v_2183, &__v_2203) } else { bytes2_xor_value(__v_2183, __v_2203, record) }; + let __v_2216: G = if unconstrained { Bytes2::xor(&__v_2180, &__v_2204) } else { bytes2_xor_value(__v_2180, __v_2204, record) }; + let __v_2217: G = if unconstrained { Bytes2::xor(&__v_2181, &__v_2205) } else { bytes2_xor_value(__v_2181, __v_2205, record) }; + let __u32_sum: u128 = u128::from(((__v_2184.as_canonical_u64() << 0) | (__v_2185.as_canonical_u64() << 8) | (__v_2186.as_canonical_u64() << 16) | (__v_2187.as_canonical_u64() << 24))) + u128::from(((__v_2215.as_canonical_u64() << 0) | (__v_2216.as_canonical_u64() << 8) | (__v_2217.as_canonical_u64() << 16) | (__v_2214.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2218: G = G::from_u8(__u32_bytes[0]); + let __v_2219: G = G::from_u8(__u32_bytes[1]); + let __v_2220: G = G::from_u8(__u32_bytes[2]); + let __v_2221: G = G::from_u8(__u32_bytes[3]); + let __v_2222: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2218; let __vj = __v_2219; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2220; let __vj = __v_2221; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2223: G = (__v_2222 * __v_2222); + if (__v_2223 != __v_2222) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2223.as_canonical_u64(), rhs: __v_2222.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2198, &__v_2218) } else { bytes2_xor_split7_value(__v_2198, __v_2218, record) }; + let __v_2224: G = __b2_out.0; + let __v_2225: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2199, &__v_2219) } else { bytes2_xor_split7_value(__v_2199, __v_2219, record) }; + let __v_2226: G = __b2_out.0; + let __v_2227: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2200, &__v_2220) } else { bytes2_xor_split7_value(__v_2200, __v_2220, record) }; + let __v_2228: G = __b2_out.0; + let __v_2229: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2201, &__v_2221) } else { bytes2_xor_split7_value(__v_2201, __v_2221, record) }; + let __v_2230: G = __b2_out.0; + let __v_2231: G = __b2_out.1; + let __v_2232: G = (__v_2224 + __v_2227); + let __v_2233: G = (__v_2226 + __v_2229); + let __v_2234: G = (__v_2228 + __v_2231); + let __v_2235: G = (__v_2230 + __v_2225); + let __u32_sum: u128 = u128::from(((__v_1998.as_canonical_u64() << 0) | (__v_1999.as_canonical_u64() << 8) | (__v_2000.as_canonical_u64() << 16) | (__v_2001.as_canonical_u64() << 24))) + u128::from(((__v_1824.as_canonical_u64() << 0) | (__v_1825.as_canonical_u64() << 8) | (__v_1826.as_canonical_u64() << 16) | (__v_1827.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2236: G = G::from_u8(__u32_bytes[0]); + let __v_2237: G = G::from_u8(__u32_bytes[1]); + let __v_2238: G = G::from_u8(__u32_bytes[2]); + let __v_2239: G = G::from_u8(__u32_bytes[3]); + let __v_2240: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2236; let __vj = __v_2237; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2238; let __vj = __v_2239; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2241: G = G::from_u64(1); + let __v_2242: G = (__v_2240 - __v_2241); + let __v_2243: G = G::from_u64(2); + let __v_2244: G = (__v_2240 - __v_2243); + let __v_2245: G = (__v_2242 * __v_2244); + let __v_2246: G = (__v_2240 * __v_2245); + let __v_2247: G = G::from_u64(0); + if (__v_2246 != __v_2247) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2246.as_canonical_u64(), rhs: __v_2247.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2248: G = if unconstrained { Bytes2::xor(&__v_1943, &__v_2236) } else { bytes2_xor_value(__v_1943, __v_2236, record) }; + let __v_2249: G = if unconstrained { Bytes2::xor(&__v_1944, &__v_2237) } else { bytes2_xor_value(__v_1944, __v_2237, record) }; + let __v_2250: G = if unconstrained { Bytes2::xor(&__v_1945, &__v_2238) } else { bytes2_xor_value(__v_1945, __v_2238, record) }; + let __v_2251: G = if unconstrained { Bytes2::xor(&__v_1942, &__v_2239) } else { bytes2_xor_value(__v_1942, __v_2239, record) }; + let __u32_sum: u128 = u128::from(((__v_1878.as_canonical_u64() << 0) | (__v_1879.as_canonical_u64() << 8) | (__v_1880.as_canonical_u64() << 16) | (__v_1881.as_canonical_u64() << 24))) + u128::from(((__v_2250.as_canonical_u64() << 0) | (__v_2251.as_canonical_u64() << 8) | (__v_2248.as_canonical_u64() << 16) | (__v_2249.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2252: G = G::from_u8(__u32_bytes[0]); + let __v_2253: G = G::from_u8(__u32_bytes[1]); + let __v_2254: G = G::from_u8(__u32_bytes[2]); + let __v_2255: G = G::from_u8(__u32_bytes[3]); + let __v_2256: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2252; let __vj = __v_2253; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2254; let __vj = __v_2255; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2257: G = (__v_2256 * __v_2256); + if (__v_2257 != __v_2256) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2257.as_canonical_u64(), rhs: __v_2256.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1824, &__v_2252) } else { bytes2_xor_split4_value(__v_1824, __v_2252, record) }; + let __v_2258: G = __b2_out.0; + let __v_2259: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1825, &__v_2253) } else { bytes2_xor_split4_value(__v_1825, __v_2253, record) }; + let __v_2260: G = __b2_out.0; + let __v_2261: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1826, &__v_2254) } else { bytes2_xor_split4_value(__v_1826, __v_2254, record) }; + let __v_2262: G = __b2_out.0; + let __v_2263: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1827, &__v_2255) } else { bytes2_xor_split4_value(__v_1827, __v_2255, record) }; + let __v_2264: G = __b2_out.0; + let __v_2265: G = __b2_out.1; + let __v_2266: G = (__v_2260 + __v_2263); + let __v_2267: G = (__v_2262 + __v_2265); + let __v_2268: G = (__v_2264 + __v_2259); + let __v_2269: G = (__v_2258 + __v_2261); + let __u32_sum: u128 = u128::from(((__v_2236.as_canonical_u64() << 0) | (__v_2237.as_canonical_u64() << 8) | (__v_2238.as_canonical_u64() << 16) | (__v_2239.as_canonical_u64() << 24))) + u128::from(((__v_2266.as_canonical_u64() << 0) | (__v_2267.as_canonical_u64() << 8) | (__v_2268.as_canonical_u64() << 16) | (__v_2269.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2270: G = G::from_u8(__u32_bytes[0]); + let __v_2271: G = G::from_u8(__u32_bytes[1]); + let __v_2272: G = G::from_u8(__u32_bytes[2]); + let __v_2273: G = G::from_u8(__u32_bytes[3]); + let __v_2274: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2270; let __vj = __v_2271; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2272; let __vj = __v_2273; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2275: G = G::from_u64(1); + let __v_2276: G = (__v_2274 - __v_2275); + let __v_2277: G = G::from_u64(2); + let __v_2278: G = (__v_2274 - __v_2277); + let __v_2279: G = (__v_2276 * __v_2278); + let __v_2280: G = (__v_2274 * __v_2279); + let __v_2281: G = G::from_u64(0); + if (__v_2280 != __v_2281) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2280.as_canonical_u64(), rhs: __v_2281.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2282: G = if unconstrained { Bytes2::xor(&__v_2250, &__v_2270) } else { bytes2_xor_value(__v_2250, __v_2270, record) }; + let __v_2283: G = if unconstrained { Bytes2::xor(&__v_2251, &__v_2271) } else { bytes2_xor_value(__v_2251, __v_2271, record) }; + let __v_2284: G = if unconstrained { Bytes2::xor(&__v_2248, &__v_2272) } else { bytes2_xor_value(__v_2248, __v_2272, record) }; + let __v_2285: G = if unconstrained { Bytes2::xor(&__v_2249, &__v_2273) } else { bytes2_xor_value(__v_2249, __v_2273, record) }; + let __u32_sum: u128 = u128::from(((__v_2252.as_canonical_u64() << 0) | (__v_2253.as_canonical_u64() << 8) | (__v_2254.as_canonical_u64() << 16) | (__v_2255.as_canonical_u64() << 24))) + u128::from(((__v_2283.as_canonical_u64() << 0) | (__v_2284.as_canonical_u64() << 8) | (__v_2285.as_canonical_u64() << 16) | (__v_2282.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2286: G = G::from_u8(__u32_bytes[0]); + let __v_2287: G = G::from_u8(__u32_bytes[1]); + let __v_2288: G = G::from_u8(__u32_bytes[2]); + let __v_2289: G = G::from_u8(__u32_bytes[3]); + let __v_2290: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2286; let __vj = __v_2287; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2288; let __vj = __v_2289; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2291: G = (__v_2290 * __v_2290); + if (__v_2291 != __v_2290) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2291.as_canonical_u64(), rhs: __v_2290.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2266, &__v_2286) } else { bytes2_xor_split7_value(__v_2266, __v_2286, record) }; + let __v_2292: G = __b2_out.0; + let __v_2293: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2267, &__v_2287) } else { bytes2_xor_split7_value(__v_2267, __v_2287, record) }; + let __v_2294: G = __b2_out.0; + let __v_2295: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2268, &__v_2288) } else { bytes2_xor_split7_value(__v_2268, __v_2288, record) }; + let __v_2296: G = __b2_out.0; + let __v_2297: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2269, &__v_2289) } else { bytes2_xor_split7_value(__v_2269, __v_2289, record) }; + let __v_2298: G = __b2_out.0; + let __v_2299: G = __b2_out.1; + let __v_2300: G = (__v_2292 + __v_2295); + let __v_2301: G = (__v_2294 + __v_2297); + let __v_2302: G = (__v_2296 + __v_2299); + let __v_2303: G = (__v_2298 + __v_2293); + let __u32_sum: u128 = u128::from(((__v_2066.as_canonical_u64() << 0) | (__v_2067.as_canonical_u64() << 8) | (__v_2068.as_canonical_u64() << 16) | (__v_2069.as_canonical_u64() << 24))) + u128::from(((__v_2300.as_canonical_u64() << 0) | (__v_2301.as_canonical_u64() << 8) | (__v_2302.as_canonical_u64() << 16) | (__v_2303.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2304: G = G::from_u8(__u32_bytes[0]); + let __v_2305: G = G::from_u8(__u32_bytes[1]); + let __v_2306: G = G::from_u8(__u32_bytes[2]); + let __v_2307: G = G::from_u8(__u32_bytes[3]); + let __v_2308: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2304; let __vj = __v_2305; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2306; let __vj = __v_2307; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2309: G = G::from_u64(1); + let __v_2310: G = (__v_2308 - __v_2309); + let __v_2311: G = G::from_u64(2); + let __v_2312: G = (__v_2308 - __v_2311); + let __v_2313: G = (__v_2310 * __v_2312); + let __v_2314: G = (__v_2308 * __v_2313); + let __v_2315: G = G::from_u64(0); + if (__v_2314 != __v_2315) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2314.as_canonical_u64(), rhs: __v_2315.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2316: G = if unconstrained { Bytes2::xor(&__v_2147, &__v_2304) } else { bytes2_xor_value(__v_2147, __v_2304, record) }; + let __v_2317: G = if unconstrained { Bytes2::xor(&__v_2148, &__v_2305) } else { bytes2_xor_value(__v_2148, __v_2305, record) }; + let __v_2318: G = if unconstrained { Bytes2::xor(&__v_2149, &__v_2306) } else { bytes2_xor_value(__v_2149, __v_2306, record) }; + let __v_2319: G = if unconstrained { Bytes2::xor(&__v_2146, &__v_2307) } else { bytes2_xor_value(__v_2146, __v_2307, record) }; + let __u32_sum: u128 = u128::from(((__v_2218.as_canonical_u64() << 0) | (__v_2219.as_canonical_u64() << 8) | (__v_2220.as_canonical_u64() << 16) | (__v_2221.as_canonical_u64() << 24))) + u128::from(((__v_2318.as_canonical_u64() << 0) | (__v_2319.as_canonical_u64() << 8) | (__v_2316.as_canonical_u64() << 16) | (__v_2317.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2320: G = G::from_u8(__u32_bytes[0]); + let __v_2321: G = G::from_u8(__u32_bytes[1]); + let __v_2322: G = G::from_u8(__u32_bytes[2]); + let __v_2323: G = G::from_u8(__u32_bytes[3]); + let __v_2324: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2320; let __vj = __v_2321; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2322; let __vj = __v_2323; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2325: G = (__v_2324 * __v_2324); + if (__v_2325 != __v_2324) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2325.as_canonical_u64(), rhs: __v_2324.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2300, &__v_2320) } else { bytes2_xor_split4_value(__v_2300, __v_2320, record) }; + let __v_2326: G = __b2_out.0; + let __v_2327: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2301, &__v_2321) } else { bytes2_xor_split4_value(__v_2301, __v_2321, record) }; + let __v_2328: G = __b2_out.0; + let __v_2329: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2302, &__v_2322) } else { bytes2_xor_split4_value(__v_2302, __v_2322, record) }; + let __v_2330: G = __b2_out.0; + let __v_2331: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2303, &__v_2323) } else { bytes2_xor_split4_value(__v_2303, __v_2323, record) }; + let __v_2332: G = __b2_out.0; + let __v_2333: G = __b2_out.1; + let __v_2334: G = (__v_2328 + __v_2331); + let __v_2335: G = (__v_2330 + __v_2333); + let __v_2336: G = (__v_2332 + __v_2327); + let __v_2337: G = (__v_2326 + __v_2329); + let __u32_sum: u128 = u128::from(((__v_2304.as_canonical_u64() << 0) | (__v_2305.as_canonical_u64() << 8) | (__v_2306.as_canonical_u64() << 16) | (__v_2307.as_canonical_u64() << 24))) + u128::from(((__v_2334.as_canonical_u64() << 0) | (__v_2335.as_canonical_u64() << 8) | (__v_2336.as_canonical_u64() << 16) | (__v_2337.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2338: G = G::from_u8(__u32_bytes[0]); + let __v_2339: G = G::from_u8(__u32_bytes[1]); + let __v_2340: G = G::from_u8(__u32_bytes[2]); + let __v_2341: G = G::from_u8(__u32_bytes[3]); + let __v_2342: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2338; let __vj = __v_2339; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2340; let __vj = __v_2341; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2343: G = G::from_u64(1); + let __v_2344: G = (__v_2342 - __v_2343); + let __v_2345: G = G::from_u64(2); + let __v_2346: G = (__v_2342 - __v_2345); + let __v_2347: G = (__v_2344 * __v_2346); + let __v_2348: G = (__v_2342 * __v_2347); + let __v_2349: G = G::from_u64(0); + if (__v_2348 != __v_2349) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2348.as_canonical_u64(), rhs: __v_2349.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2350: G = if unconstrained { Bytes2::xor(&__v_2318, &__v_2338) } else { bytes2_xor_value(__v_2318, __v_2338, record) }; + let __v_2351: G = if unconstrained { Bytes2::xor(&__v_2319, &__v_2339) } else { bytes2_xor_value(__v_2319, __v_2339, record) }; + let __v_2352: G = if unconstrained { Bytes2::xor(&__v_2316, &__v_2340) } else { bytes2_xor_value(__v_2316, __v_2340, record) }; + let __v_2353: G = if unconstrained { Bytes2::xor(&__v_2317, &__v_2341) } else { bytes2_xor_value(__v_2317, __v_2341, record) }; + let __u32_sum: u128 = u128::from(((__v_2320.as_canonical_u64() << 0) | (__v_2321.as_canonical_u64() << 8) | (__v_2322.as_canonical_u64() << 16) | (__v_2323.as_canonical_u64() << 24))) + u128::from(((__v_2351.as_canonical_u64() << 0) | (__v_2352.as_canonical_u64() << 8) | (__v_2353.as_canonical_u64() << 16) | (__v_2350.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2354: G = G::from_u8(__u32_bytes[0]); + let __v_2355: G = G::from_u8(__u32_bytes[1]); + let __v_2356: G = G::from_u8(__u32_bytes[2]); + let __v_2357: G = G::from_u8(__u32_bytes[3]); + let __v_2358: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2354; let __vj = __v_2355; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2356; let __vj = __v_2357; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2359: G = (__v_2358 * __v_2358); + if (__v_2359 != __v_2358) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2359.as_canonical_u64(), rhs: __v_2358.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2334, &__v_2354) } else { bytes2_xor_split7_value(__v_2334, __v_2354, record) }; + let __v_2360: G = __b2_out.0; + let __v_2361: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2335, &__v_2355) } else { bytes2_xor_split7_value(__v_2335, __v_2355, record) }; + let __v_2362: G = __b2_out.0; + let __v_2363: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2336, &__v_2356) } else { bytes2_xor_split7_value(__v_2336, __v_2356, record) }; + let __v_2364: G = __b2_out.0; + let __v_2365: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2337, &__v_2357) } else { bytes2_xor_split7_value(__v_2337, __v_2357, record) }; + let __v_2366: G = __b2_out.0; + let __v_2367: G = __b2_out.1; + let __v_2368: G = (__v_2360 + __v_2363); + let __v_2369: G = (__v_2362 + __v_2365); + let __v_2370: G = (__v_2364 + __v_2367); + let __v_2371: G = (__v_2366 + __v_2361); + let __u32_sum: u128 = u128::from(((__v_2134.as_canonical_u64() << 0) | (__v_2135.as_canonical_u64() << 8) | (__v_2136.as_canonical_u64() << 16) | (__v_2137.as_canonical_u64() << 24))) + u128::from(((__v_2096.as_canonical_u64() << 0) | (__v_2097.as_canonical_u64() << 8) | (__v_2098.as_canonical_u64() << 16) | (__v_2099.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2372: G = G::from_u8(__u32_bytes[0]); + let __v_2373: G = G::from_u8(__u32_bytes[1]); + let __v_2374: G = G::from_u8(__u32_bytes[2]); + let __v_2375: G = G::from_u8(__u32_bytes[3]); + let __v_2376: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2372; let __vj = __v_2373; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2374; let __vj = __v_2375; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2377: G = G::from_u64(1); + let __v_2378: G = (__v_2376 - __v_2377); + let __v_2379: G = G::from_u64(2); + let __v_2380: G = (__v_2376 - __v_2379); + let __v_2381: G = (__v_2378 * __v_2380); + let __v_2382: G = (__v_2376 * __v_2381); + let __v_2383: G = G::from_u64(0); + if (__v_2382 != __v_2383) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2382.as_canonical_u64(), rhs: __v_2383.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2384: G = if unconstrained { Bytes2::xor(&__v_2215, &__v_2372) } else { bytes2_xor_value(__v_2215, __v_2372, record) }; + let __v_2385: G = if unconstrained { Bytes2::xor(&__v_2216, &__v_2373) } else { bytes2_xor_value(__v_2216, __v_2373, record) }; + let __v_2386: G = if unconstrained { Bytes2::xor(&__v_2217, &__v_2374) } else { bytes2_xor_value(__v_2217, __v_2374, record) }; + let __v_2387: G = if unconstrained { Bytes2::xor(&__v_2214, &__v_2375) } else { bytes2_xor_value(__v_2214, __v_2375, record) }; + let __u32_sum: u128 = u128::from(((__v_2286.as_canonical_u64() << 0) | (__v_2287.as_canonical_u64() << 8) | (__v_2288.as_canonical_u64() << 16) | (__v_2289.as_canonical_u64() << 24))) + u128::from(((__v_2386.as_canonical_u64() << 0) | (__v_2387.as_canonical_u64() << 8) | (__v_2384.as_canonical_u64() << 16) | (__v_2385.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2388: G = G::from_u8(__u32_bytes[0]); + let __v_2389: G = G::from_u8(__u32_bytes[1]); + let __v_2390: G = G::from_u8(__u32_bytes[2]); + let __v_2391: G = G::from_u8(__u32_bytes[3]); + let __v_2392: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2388; let __vj = __v_2389; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2390; let __vj = __v_2391; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2393: G = (__v_2392 * __v_2392); + if (__v_2393 != __v_2392) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2393.as_canonical_u64(), rhs: __v_2392.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2096, &__v_2388) } else { bytes2_xor_split4_value(__v_2096, __v_2388, record) }; + let __v_2394: G = __b2_out.0; + let __v_2395: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2097, &__v_2389) } else { bytes2_xor_split4_value(__v_2097, __v_2389, record) }; + let __v_2396: G = __b2_out.0; + let __v_2397: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2098, &__v_2390) } else { bytes2_xor_split4_value(__v_2098, __v_2390, record) }; + let __v_2398: G = __b2_out.0; + let __v_2399: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2099, &__v_2391) } else { bytes2_xor_split4_value(__v_2099, __v_2391, record) }; + let __v_2400: G = __b2_out.0; + let __v_2401: G = __b2_out.1; + let __v_2402: G = (__v_2396 + __v_2399); + let __v_2403: G = (__v_2398 + __v_2401); + let __v_2404: G = (__v_2400 + __v_2395); + let __v_2405: G = (__v_2394 + __v_2397); + let __u32_sum: u128 = u128::from(((__v_2372.as_canonical_u64() << 0) | (__v_2373.as_canonical_u64() << 8) | (__v_2374.as_canonical_u64() << 16) | (__v_2375.as_canonical_u64() << 24))) + u128::from(((__v_2402.as_canonical_u64() << 0) | (__v_2403.as_canonical_u64() << 8) | (__v_2404.as_canonical_u64() << 16) | (__v_2405.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2406: G = G::from_u8(__u32_bytes[0]); + let __v_2407: G = G::from_u8(__u32_bytes[1]); + let __v_2408: G = G::from_u8(__u32_bytes[2]); + let __v_2409: G = G::from_u8(__u32_bytes[3]); + let __v_2410: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2406; let __vj = __v_2407; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2408; let __vj = __v_2409; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2411: G = G::from_u64(1); + let __v_2412: G = (__v_2410 - __v_2411); + let __v_2413: G = G::from_u64(2); + let __v_2414: G = (__v_2410 - __v_2413); + let __v_2415: G = (__v_2412 * __v_2414); + let __v_2416: G = (__v_2410 * __v_2415); + let __v_2417: G = G::from_u64(0); + if (__v_2416 != __v_2417) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2416.as_canonical_u64(), rhs: __v_2417.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2418: G = if unconstrained { Bytes2::xor(&__v_2386, &__v_2406) } else { bytes2_xor_value(__v_2386, __v_2406, record) }; + let __v_2419: G = if unconstrained { Bytes2::xor(&__v_2387, &__v_2407) } else { bytes2_xor_value(__v_2387, __v_2407, record) }; + let __v_2420: G = if unconstrained { Bytes2::xor(&__v_2384, &__v_2408) } else { bytes2_xor_value(__v_2384, __v_2408, record) }; + let __v_2421: G = if unconstrained { Bytes2::xor(&__v_2385, &__v_2409) } else { bytes2_xor_value(__v_2385, __v_2409, record) }; + let __u32_sum: u128 = u128::from(((__v_2388.as_canonical_u64() << 0) | (__v_2389.as_canonical_u64() << 8) | (__v_2390.as_canonical_u64() << 16) | (__v_2391.as_canonical_u64() << 24))) + u128::from(((__v_2419.as_canonical_u64() << 0) | (__v_2420.as_canonical_u64() << 8) | (__v_2421.as_canonical_u64() << 16) | (__v_2418.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2422: G = G::from_u8(__u32_bytes[0]); + let __v_2423: G = G::from_u8(__u32_bytes[1]); + let __v_2424: G = G::from_u8(__u32_bytes[2]); + let __v_2425: G = G::from_u8(__u32_bytes[3]); + let __v_2426: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2422; let __vj = __v_2423; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2424; let __vj = __v_2425; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2427: G = (__v_2426 * __v_2426); + if (__v_2427 != __v_2426) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2427.as_canonical_u64(), rhs: __v_2426.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2402, &__v_2422) } else { bytes2_xor_split7_value(__v_2402, __v_2422, record) }; + let __v_2428: G = __b2_out.0; + let __v_2429: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2403, &__v_2423) } else { bytes2_xor_split7_value(__v_2403, __v_2423, record) }; + let __v_2430: G = __b2_out.0; + let __v_2431: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2404, &__v_2424) } else { bytes2_xor_split7_value(__v_2404, __v_2424, record) }; + let __v_2432: G = __b2_out.0; + let __v_2433: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2405, &__v_2425) } else { bytes2_xor_split7_value(__v_2405, __v_2425, record) }; + let __v_2434: G = __b2_out.0; + let __v_2435: G = __b2_out.1; + let __v_2436: G = (__v_2428 + __v_2431); + let __v_2437: G = (__v_2430 + __v_2433); + let __v_2438: G = (__v_2432 + __v_2435); + let __v_2439: G = (__v_2434 + __v_2429); + let __u32_sum: u128 = u128::from(((__v_2202.as_canonical_u64() << 0) | (__v_2203.as_canonical_u64() << 8) | (__v_2204.as_canonical_u64() << 16) | (__v_2205.as_canonical_u64() << 24))) + u128::from(((__v_2164.as_canonical_u64() << 0) | (__v_2165.as_canonical_u64() << 8) | (__v_2166.as_canonical_u64() << 16) | (__v_2167.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2440: G = G::from_u8(__u32_bytes[0]); + let __v_2441: G = G::from_u8(__u32_bytes[1]); + let __v_2442: G = G::from_u8(__u32_bytes[2]); + let __v_2443: G = G::from_u8(__u32_bytes[3]); + let __v_2444: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2440; let __vj = __v_2441; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2442; let __vj = __v_2443; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2445: G = G::from_u64(1); + let __v_2446: G = (__v_2444 - __v_2445); + let __v_2447: G = G::from_u64(2); + let __v_2448: G = (__v_2444 - __v_2447); + let __v_2449: G = (__v_2446 * __v_2448); + let __v_2450: G = (__v_2444 * __v_2449); + let __v_2451: G = G::from_u64(0); + if (__v_2450 != __v_2451) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2450.as_canonical_u64(), rhs: __v_2451.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2452: G = if unconstrained { Bytes2::xor(&__v_2283, &__v_2440) } else { bytes2_xor_value(__v_2283, __v_2440, record) }; + let __v_2453: G = if unconstrained { Bytes2::xor(&__v_2284, &__v_2441) } else { bytes2_xor_value(__v_2284, __v_2441, record) }; + let __v_2454: G = if unconstrained { Bytes2::xor(&__v_2285, &__v_2442) } else { bytes2_xor_value(__v_2285, __v_2442, record) }; + let __v_2455: G = if unconstrained { Bytes2::xor(&__v_2282, &__v_2443) } else { bytes2_xor_value(__v_2282, __v_2443, record) }; + let __u32_sum: u128 = u128::from(((__v_2082.as_canonical_u64() << 0) | (__v_2083.as_canonical_u64() << 8) | (__v_2084.as_canonical_u64() << 16) | (__v_2085.as_canonical_u64() << 24))) + u128::from(((__v_2454.as_canonical_u64() << 0) | (__v_2455.as_canonical_u64() << 8) | (__v_2452.as_canonical_u64() << 16) | (__v_2453.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2456: G = G::from_u8(__u32_bytes[0]); + let __v_2457: G = G::from_u8(__u32_bytes[1]); + let __v_2458: G = G::from_u8(__u32_bytes[2]); + let __v_2459: G = G::from_u8(__u32_bytes[3]); + let __v_2460: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2456; let __vj = __v_2457; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2458; let __vj = __v_2459; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2461: G = (__v_2460 * __v_2460); + if (__v_2461 != __v_2460) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2461.as_canonical_u64(), rhs: __v_2460.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2164, &__v_2456) } else { bytes2_xor_split4_value(__v_2164, __v_2456, record) }; + let __v_2462: G = __b2_out.0; + let __v_2463: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2165, &__v_2457) } else { bytes2_xor_split4_value(__v_2165, __v_2457, record) }; + let __v_2464: G = __b2_out.0; + let __v_2465: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2166, &__v_2458) } else { bytes2_xor_split4_value(__v_2166, __v_2458, record) }; + let __v_2466: G = __b2_out.0; + let __v_2467: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2167, &__v_2459) } else { bytes2_xor_split4_value(__v_2167, __v_2459, record) }; + let __v_2468: G = __b2_out.0; + let __v_2469: G = __b2_out.1; + let __v_2470: G = (__v_2464 + __v_2467); + let __v_2471: G = (__v_2466 + __v_2469); + let __v_2472: G = (__v_2468 + __v_2463); + let __v_2473: G = (__v_2462 + __v_2465); + let __u32_sum: u128 = u128::from(((__v_2440.as_canonical_u64() << 0) | (__v_2441.as_canonical_u64() << 8) | (__v_2442.as_canonical_u64() << 16) | (__v_2443.as_canonical_u64() << 24))) + u128::from(((__v_2470.as_canonical_u64() << 0) | (__v_2471.as_canonical_u64() << 8) | (__v_2472.as_canonical_u64() << 16) | (__v_2473.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2474: G = G::from_u8(__u32_bytes[0]); + let __v_2475: G = G::from_u8(__u32_bytes[1]); + let __v_2476: G = G::from_u8(__u32_bytes[2]); + let __v_2477: G = G::from_u8(__u32_bytes[3]); + let __v_2478: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2474; let __vj = __v_2475; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2476; let __vj = __v_2477; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2479: G = G::from_u64(1); + let __v_2480: G = (__v_2478 - __v_2479); + let __v_2481: G = G::from_u64(2); + let __v_2482: G = (__v_2478 - __v_2481); + let __v_2483: G = (__v_2480 * __v_2482); + let __v_2484: G = (__v_2478 * __v_2483); + let __v_2485: G = G::from_u64(0); + if (__v_2484 != __v_2485) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2484.as_canonical_u64(), rhs: __v_2485.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2486: G = if unconstrained { Bytes2::xor(&__v_2454, &__v_2474) } else { bytes2_xor_value(__v_2454, __v_2474, record) }; + let __v_2487: G = if unconstrained { Bytes2::xor(&__v_2455, &__v_2475) } else { bytes2_xor_value(__v_2455, __v_2475, record) }; + let __v_2488: G = if unconstrained { Bytes2::xor(&__v_2452, &__v_2476) } else { bytes2_xor_value(__v_2452, __v_2476, record) }; + let __v_2489: G = if unconstrained { Bytes2::xor(&__v_2453, &__v_2477) } else { bytes2_xor_value(__v_2453, __v_2477, record) }; + let __u32_sum: u128 = u128::from(((__v_2456.as_canonical_u64() << 0) | (__v_2457.as_canonical_u64() << 8) | (__v_2458.as_canonical_u64() << 16) | (__v_2459.as_canonical_u64() << 24))) + u128::from(((__v_2487.as_canonical_u64() << 0) | (__v_2488.as_canonical_u64() << 8) | (__v_2489.as_canonical_u64() << 16) | (__v_2486.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2490: G = G::from_u8(__u32_bytes[0]); + let __v_2491: G = G::from_u8(__u32_bytes[1]); + let __v_2492: G = G::from_u8(__u32_bytes[2]); + let __v_2493: G = G::from_u8(__u32_bytes[3]); + let __v_2494: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2490; let __vj = __v_2491; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2492; let __vj = __v_2493; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2495: G = (__v_2494 * __v_2494); + if (__v_2495 != __v_2494) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2495.as_canonical_u64(), rhs: __v_2494.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2470, &__v_2490) } else { bytes2_xor_split7_value(__v_2470, __v_2490, record) }; + let __v_2496: G = __b2_out.0; + let __v_2497: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2471, &__v_2491) } else { bytes2_xor_split7_value(__v_2471, __v_2491, record) }; + let __v_2498: G = __b2_out.0; + let __v_2499: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2472, &__v_2492) } else { bytes2_xor_split7_value(__v_2472, __v_2492, record) }; + let __v_2500: G = __b2_out.0; + let __v_2501: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2473, &__v_2493) } else { bytes2_xor_split7_value(__v_2473, __v_2493, record) }; + let __v_2502: G = __b2_out.0; + let __v_2503: G = __b2_out.1; + let __v_2504: G = (__v_2496 + __v_2499); + let __v_2505: G = (__v_2498 + __v_2501); + let __v_2506: G = (__v_2500 + __v_2503); + let __v_2507: G = (__v_2502 + __v_2497); + let __u32_sum: u128 = u128::from(((__v_2270.as_canonical_u64() << 0) | (__v_2271.as_canonical_u64() << 8) | (__v_2272.as_canonical_u64() << 16) | (__v_2273.as_canonical_u64() << 24))) + u128::from(((__v_2232.as_canonical_u64() << 0) | (__v_2233.as_canonical_u64() << 8) | (__v_2234.as_canonical_u64() << 16) | (__v_2235.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2508: G = G::from_u8(__u32_bytes[0]); + let __v_2509: G = G::from_u8(__u32_bytes[1]); + let __v_2510: G = G::from_u8(__u32_bytes[2]); + let __v_2511: G = G::from_u8(__u32_bytes[3]); + let __v_2512: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2508; let __vj = __v_2509; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2510; let __vj = __v_2511; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2513: G = G::from_u64(1); + let __v_2514: G = (__v_2512 - __v_2513); + let __v_2515: G = G::from_u64(2); + let __v_2516: G = (__v_2512 - __v_2515); + let __v_2517: G = (__v_2514 * __v_2516); + let __v_2518: G = (__v_2512 * __v_2517); + let __v_2519: G = G::from_u64(0); + if (__v_2518 != __v_2519) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2518.as_canonical_u64(), rhs: __v_2519.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2520: G = if unconstrained { Bytes2::xor(&__v_2079, &__v_2508) } else { bytes2_xor_value(__v_2079, __v_2508, record) }; + let __v_2521: G = if unconstrained { Bytes2::xor(&__v_2080, &__v_2509) } else { bytes2_xor_value(__v_2080, __v_2509, record) }; + let __v_2522: G = if unconstrained { Bytes2::xor(&__v_2081, &__v_2510) } else { bytes2_xor_value(__v_2081, __v_2510, record) }; + let __v_2523: G = if unconstrained { Bytes2::xor(&__v_2078, &__v_2511) } else { bytes2_xor_value(__v_2078, __v_2511, record) }; + let __u32_sum: u128 = u128::from(((__v_2150.as_canonical_u64() << 0) | (__v_2151.as_canonical_u64() << 8) | (__v_2152.as_canonical_u64() << 16) | (__v_2153.as_canonical_u64() << 24))) + u128::from(((__v_2522.as_canonical_u64() << 0) | (__v_2523.as_canonical_u64() << 8) | (__v_2520.as_canonical_u64() << 16) | (__v_2521.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2524: G = G::from_u8(__u32_bytes[0]); + let __v_2525: G = G::from_u8(__u32_bytes[1]); + let __v_2526: G = G::from_u8(__u32_bytes[2]); + let __v_2527: G = G::from_u8(__u32_bytes[3]); + let __v_2528: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2524; let __vj = __v_2525; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2526; let __vj = __v_2527; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2529: G = (__v_2528 * __v_2528); + if (__v_2529 != __v_2528) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2529.as_canonical_u64(), rhs: __v_2528.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2232, &__v_2524) } else { bytes2_xor_split4_value(__v_2232, __v_2524, record) }; + let __v_2530: G = __b2_out.0; + let __v_2531: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2233, &__v_2525) } else { bytes2_xor_split4_value(__v_2233, __v_2525, record) }; + let __v_2532: G = __b2_out.0; + let __v_2533: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2234, &__v_2526) } else { bytes2_xor_split4_value(__v_2234, __v_2526, record) }; + let __v_2534: G = __b2_out.0; + let __v_2535: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2235, &__v_2527) } else { bytes2_xor_split4_value(__v_2235, __v_2527, record) }; + let __v_2536: G = __b2_out.0; + let __v_2537: G = __b2_out.1; + let __v_2538: G = (__v_2532 + __v_2535); + let __v_2539: G = (__v_2534 + __v_2537); + let __v_2540: G = (__v_2536 + __v_2531); + let __v_2541: G = (__v_2530 + __v_2533); + let __u32_sum: u128 = u128::from(((__v_2508.as_canonical_u64() << 0) | (__v_2509.as_canonical_u64() << 8) | (__v_2510.as_canonical_u64() << 16) | (__v_2511.as_canonical_u64() << 24))) + u128::from(((__v_2538.as_canonical_u64() << 0) | (__v_2539.as_canonical_u64() << 8) | (__v_2540.as_canonical_u64() << 16) | (__v_2541.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2542: G = G::from_u8(__u32_bytes[0]); + let __v_2543: G = G::from_u8(__u32_bytes[1]); + let __v_2544: G = G::from_u8(__u32_bytes[2]); + let __v_2545: G = G::from_u8(__u32_bytes[3]); + let __v_2546: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2542; let __vj = __v_2543; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2544; let __vj = __v_2545; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2547: G = G::from_u64(1); + let __v_2548: G = (__v_2546 - __v_2547); + let __v_2549: G = G::from_u64(2); + let __v_2550: G = (__v_2546 - __v_2549); + let __v_2551: G = (__v_2548 * __v_2550); + let __v_2552: G = (__v_2546 * __v_2551); + let __v_2553: G = G::from_u64(0); + if (__v_2552 != __v_2553) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2552.as_canonical_u64(), rhs: __v_2553.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2554: G = if unconstrained { Bytes2::xor(&__v_2522, &__v_2542) } else { bytes2_xor_value(__v_2522, __v_2542, record) }; + let __v_2555: G = if unconstrained { Bytes2::xor(&__v_2523, &__v_2543) } else { bytes2_xor_value(__v_2523, __v_2543, record) }; + let __v_2556: G = if unconstrained { Bytes2::xor(&__v_2520, &__v_2544) } else { bytes2_xor_value(__v_2520, __v_2544, record) }; + let __v_2557: G = if unconstrained { Bytes2::xor(&__v_2521, &__v_2545) } else { bytes2_xor_value(__v_2521, __v_2545, record) }; + let __u32_sum: u128 = u128::from(((__v_2524.as_canonical_u64() << 0) | (__v_2525.as_canonical_u64() << 8) | (__v_2526.as_canonical_u64() << 16) | (__v_2527.as_canonical_u64() << 24))) + u128::from(((__v_2555.as_canonical_u64() << 0) | (__v_2556.as_canonical_u64() << 8) | (__v_2557.as_canonical_u64() << 16) | (__v_2554.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2558: G = G::from_u8(__u32_bytes[0]); + let __v_2559: G = G::from_u8(__u32_bytes[1]); + let __v_2560: G = G::from_u8(__u32_bytes[2]); + let __v_2561: G = G::from_u8(__u32_bytes[3]); + let __v_2562: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2558; let __vj = __v_2559; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2560; let __vj = __v_2561; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2563: G = (__v_2562 * __v_2562); + if (__v_2563 != __v_2562) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2563.as_canonical_u64(), rhs: __v_2562.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2538, &__v_2558) } else { bytes2_xor_split7_value(__v_2538, __v_2558, record) }; + let __v_2564: G = __b2_out.0; + let __v_2565: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2539, &__v_2559) } else { bytes2_xor_split7_value(__v_2539, __v_2559, record) }; + let __v_2566: G = __b2_out.0; + let __v_2567: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2540, &__v_2560) } else { bytes2_xor_split7_value(__v_2540, __v_2560, record) }; + let __v_2568: G = __b2_out.0; + let __v_2569: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2541, &__v_2561) } else { bytes2_xor_split7_value(__v_2541, __v_2561, record) }; + let __v_2570: G = __b2_out.0; + let __v_2571: G = __b2_out.1; + let __v_2572: G = (__v_2564 + __v_2567); + let __v_2573: G = (__v_2566 + __v_2569); + let __v_2574: G = (__v_2568 + __v_2571); + let __v_2575: G = (__v_2570 + __v_2565); + let __u32_sum: u128 = u128::from(((__v_2338.as_canonical_u64() << 0) | (__v_2339.as_canonical_u64() << 8) | (__v_2340.as_canonical_u64() << 16) | (__v_2341.as_canonical_u64() << 24))) + u128::from(((__v_2436.as_canonical_u64() << 0) | (__v_2437.as_canonical_u64() << 8) | (__v_2438.as_canonical_u64() << 16) | (__v_2439.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2576: G = G::from_u8(__u32_bytes[0]); + let __v_2577: G = G::from_u8(__u32_bytes[1]); + let __v_2578: G = G::from_u8(__u32_bytes[2]); + let __v_2579: G = G::from_u8(__u32_bytes[3]); + let __v_2580: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2576; let __vj = __v_2577; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2578; let __vj = __v_2579; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2581: G = G::from_u64(1); + let __v_2582: G = (__v_2580 - __v_2581); + let __v_2583: G = G::from_u64(2); + let __v_2584: G = (__v_2580 - __v_2583); + let __v_2585: G = (__v_2582 * __v_2584); + let __v_2586: G = (__v_2580 * __v_2585); + let __v_2587: G = G::from_u64(0); + if (__v_2586 != __v_2587) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2586.as_canonical_u64(), rhs: __v_2587.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2588: G = if unconstrained { Bytes2::xor(&__v_2555, &__v_2576) } else { bytes2_xor_value(__v_2555, __v_2576, record) }; + let __v_2589: G = if unconstrained { Bytes2::xor(&__v_2556, &__v_2577) } else { bytes2_xor_value(__v_2556, __v_2577, record) }; + let __v_2590: G = if unconstrained { Bytes2::xor(&__v_2557, &__v_2578) } else { bytes2_xor_value(__v_2557, __v_2578, record) }; + let __v_2591: G = if unconstrained { Bytes2::xor(&__v_2554, &__v_2579) } else { bytes2_xor_value(__v_2554, __v_2579, record) }; + let __u32_sum: u128 = u128::from(((__v_2490.as_canonical_u64() << 0) | (__v_2491.as_canonical_u64() << 8) | (__v_2492.as_canonical_u64() << 16) | (__v_2493.as_canonical_u64() << 24))) + u128::from(((__v_2590.as_canonical_u64() << 0) | (__v_2591.as_canonical_u64() << 8) | (__v_2588.as_canonical_u64() << 16) | (__v_2589.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2592: G = G::from_u8(__u32_bytes[0]); + let __v_2593: G = G::from_u8(__u32_bytes[1]); + let __v_2594: G = G::from_u8(__u32_bytes[2]); + let __v_2595: G = G::from_u8(__u32_bytes[3]); + let __v_2596: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2592; let __vj = __v_2593; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2594; let __vj = __v_2595; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2597: G = (__v_2596 * __v_2596); + if (__v_2597 != __v_2596) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2597.as_canonical_u64(), rhs: __v_2596.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2436, &__v_2592) } else { bytes2_xor_split4_value(__v_2436, __v_2592, record) }; + let __v_2598: G = __b2_out.0; + let __v_2599: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2437, &__v_2593) } else { bytes2_xor_split4_value(__v_2437, __v_2593, record) }; + let __v_2600: G = __b2_out.0; + let __v_2601: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2438, &__v_2594) } else { bytes2_xor_split4_value(__v_2438, __v_2594, record) }; + let __v_2602: G = __b2_out.0; + let __v_2603: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2439, &__v_2595) } else { bytes2_xor_split4_value(__v_2439, __v_2595, record) }; + let __v_2604: G = __b2_out.0; + let __v_2605: G = __b2_out.1; + let __v_2606: G = (__v_2600 + __v_2603); + let __v_2607: G = (__v_2602 + __v_2605); + let __v_2608: G = (__v_2604 + __v_2599); + let __v_2609: G = (__v_2598 + __v_2601); + let __u32_sum: u128 = u128::from(((__v_2576.as_canonical_u64() << 0) | (__v_2577.as_canonical_u64() << 8) | (__v_2578.as_canonical_u64() << 16) | (__v_2579.as_canonical_u64() << 24))) + u128::from(((__v_2606.as_canonical_u64() << 0) | (__v_2607.as_canonical_u64() << 8) | (__v_2608.as_canonical_u64() << 16) | (__v_2609.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2610: G = G::from_u8(__u32_bytes[0]); + let __v_2611: G = G::from_u8(__u32_bytes[1]); + let __v_2612: G = G::from_u8(__u32_bytes[2]); + let __v_2613: G = G::from_u8(__u32_bytes[3]); + let __v_2614: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2610; let __vj = __v_2611; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2612; let __vj = __v_2613; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2615: G = G::from_u64(1); + let __v_2616: G = (__v_2614 - __v_2615); + let __v_2617: G = G::from_u64(2); + let __v_2618: G = (__v_2614 - __v_2617); + let __v_2619: G = (__v_2616 * __v_2618); + let __v_2620: G = (__v_2614 * __v_2619); + let __v_2621: G = G::from_u64(0); + if (__v_2620 != __v_2621) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2620.as_canonical_u64(), rhs: __v_2621.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2622: G = if unconstrained { Bytes2::xor(&__v_2590, &__v_2610) } else { bytes2_xor_value(__v_2590, __v_2610, record) }; + let __v_2623: G = if unconstrained { Bytes2::xor(&__v_2591, &__v_2611) } else { bytes2_xor_value(__v_2591, __v_2611, record) }; + let __v_2624: G = if unconstrained { Bytes2::xor(&__v_2588, &__v_2612) } else { bytes2_xor_value(__v_2588, __v_2612, record) }; + let __v_2625: G = if unconstrained { Bytes2::xor(&__v_2589, &__v_2613) } else { bytes2_xor_value(__v_2589, __v_2613, record) }; + let __u32_sum: u128 = u128::from(((__v_2592.as_canonical_u64() << 0) | (__v_2593.as_canonical_u64() << 8) | (__v_2594.as_canonical_u64() << 16) | (__v_2595.as_canonical_u64() << 24))) + u128::from(((__v_2623.as_canonical_u64() << 0) | (__v_2624.as_canonical_u64() << 8) | (__v_2625.as_canonical_u64() << 16) | (__v_2622.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2626: G = G::from_u8(__u32_bytes[0]); + let __v_2627: G = G::from_u8(__u32_bytes[1]); + let __v_2628: G = G::from_u8(__u32_bytes[2]); + let __v_2629: G = G::from_u8(__u32_bytes[3]); + let __v_2630: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2626; let __vj = __v_2627; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2628; let __vj = __v_2629; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2631: G = (__v_2630 * __v_2630); + if (__v_2631 != __v_2630) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2631.as_canonical_u64(), rhs: __v_2630.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2606, &__v_2626) } else { bytes2_xor_split7_value(__v_2606, __v_2626, record) }; + let __v_2632: G = __b2_out.0; + let __v_2633: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2607, &__v_2627) } else { bytes2_xor_split7_value(__v_2607, __v_2627, record) }; + let __v_2634: G = __b2_out.0; + let __v_2635: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2608, &__v_2628) } else { bytes2_xor_split7_value(__v_2608, __v_2628, record) }; + let __v_2636: G = __b2_out.0; + let __v_2637: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2609, &__v_2629) } else { bytes2_xor_split7_value(__v_2609, __v_2629, record) }; + let __v_2638: G = __b2_out.0; + let __v_2639: G = __b2_out.1; + let __v_2640: G = (__v_2632 + __v_2635); + let __v_2641: G = (__v_2634 + __v_2637); + let __v_2642: G = (__v_2636 + __v_2639); + let __v_2643: G = (__v_2638 + __v_2633); + let __u32_sum: u128 = u128::from(((__v_2406.as_canonical_u64() << 0) | (__v_2407.as_canonical_u64() << 8) | (__v_2408.as_canonical_u64() << 16) | (__v_2409.as_canonical_u64() << 24))) + u128::from(((__v_2504.as_canonical_u64() << 0) | (__v_2505.as_canonical_u64() << 8) | (__v_2506.as_canonical_u64() << 16) | (__v_2507.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2644: G = G::from_u8(__u32_bytes[0]); + let __v_2645: G = G::from_u8(__u32_bytes[1]); + let __v_2646: G = G::from_u8(__u32_bytes[2]); + let __v_2647: G = G::from_u8(__u32_bytes[3]); + let __v_2648: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2644; let __vj = __v_2645; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2646; let __vj = __v_2647; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2649: G = G::from_u64(1); + let __v_2650: G = (__v_2648 - __v_2649); + let __v_2651: G = G::from_u64(2); + let __v_2652: G = (__v_2648 - __v_2651); + let __v_2653: G = (__v_2650 * __v_2652); + let __v_2654: G = (__v_2648 * __v_2653); + let __v_2655: G = G::from_u64(0); + if (__v_2654 != __v_2655) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2654.as_canonical_u64(), rhs: __v_2655.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2656: G = if unconstrained { Bytes2::xor(&__v_2351, &__v_2644) } else { bytes2_xor_value(__v_2351, __v_2644, record) }; + let __v_2657: G = if unconstrained { Bytes2::xor(&__v_2352, &__v_2645) } else { bytes2_xor_value(__v_2352, __v_2645, record) }; + let __v_2658: G = if unconstrained { Bytes2::xor(&__v_2353, &__v_2646) } else { bytes2_xor_value(__v_2353, __v_2646, record) }; + let __v_2659: G = if unconstrained { Bytes2::xor(&__v_2350, &__v_2647) } else { bytes2_xor_value(__v_2350, __v_2647, record) }; + let __u32_sum: u128 = u128::from(((__v_2558.as_canonical_u64() << 0) | (__v_2559.as_canonical_u64() << 8) | (__v_2560.as_canonical_u64() << 16) | (__v_2561.as_canonical_u64() << 24))) + u128::from(((__v_2658.as_canonical_u64() << 0) | (__v_2659.as_canonical_u64() << 8) | (__v_2656.as_canonical_u64() << 16) | (__v_2657.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2660: G = G::from_u8(__u32_bytes[0]); + let __v_2661: G = G::from_u8(__u32_bytes[1]); + let __v_2662: G = G::from_u8(__u32_bytes[2]); + let __v_2663: G = G::from_u8(__u32_bytes[3]); + let __v_2664: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2660; let __vj = __v_2661; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2662; let __vj = __v_2663; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2665: G = (__v_2664 * __v_2664); + if (__v_2665 != __v_2664) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2665.as_canonical_u64(), rhs: __v_2664.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2504, &__v_2660) } else { bytes2_xor_split4_value(__v_2504, __v_2660, record) }; + let __v_2666: G = __b2_out.0; + let __v_2667: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2505, &__v_2661) } else { bytes2_xor_split4_value(__v_2505, __v_2661, record) }; + let __v_2668: G = __b2_out.0; + let __v_2669: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2506, &__v_2662) } else { bytes2_xor_split4_value(__v_2506, __v_2662, record) }; + let __v_2670: G = __b2_out.0; + let __v_2671: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2507, &__v_2663) } else { bytes2_xor_split4_value(__v_2507, __v_2663, record) }; + let __v_2672: G = __b2_out.0; + let __v_2673: G = __b2_out.1; + let __v_2674: G = (__v_2668 + __v_2671); + let __v_2675: G = (__v_2670 + __v_2673); + let __v_2676: G = (__v_2672 + __v_2667); + let __v_2677: G = (__v_2666 + __v_2669); + let __u32_sum: u128 = u128::from(((__v_2644.as_canonical_u64() << 0) | (__v_2645.as_canonical_u64() << 8) | (__v_2646.as_canonical_u64() << 16) | (__v_2647.as_canonical_u64() << 24))) + u128::from(((__v_2674.as_canonical_u64() << 0) | (__v_2675.as_canonical_u64() << 8) | (__v_2676.as_canonical_u64() << 16) | (__v_2677.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2678: G = G::from_u8(__u32_bytes[0]); + let __v_2679: G = G::from_u8(__u32_bytes[1]); + let __v_2680: G = G::from_u8(__u32_bytes[2]); + let __v_2681: G = G::from_u8(__u32_bytes[3]); + let __v_2682: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2678; let __vj = __v_2679; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2680; let __vj = __v_2681; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2683: G = G::from_u64(1); + let __v_2684: G = (__v_2682 - __v_2683); + let __v_2685: G = G::from_u64(2); + let __v_2686: G = (__v_2682 - __v_2685); + let __v_2687: G = (__v_2684 * __v_2686); + let __v_2688: G = (__v_2682 * __v_2687); + let __v_2689: G = G::from_u64(0); + if (__v_2688 != __v_2689) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2688.as_canonical_u64(), rhs: __v_2689.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2690: G = if unconstrained { Bytes2::xor(&__v_2658, &__v_2678) } else { bytes2_xor_value(__v_2658, __v_2678, record) }; + let __v_2691: G = if unconstrained { Bytes2::xor(&__v_2659, &__v_2679) } else { bytes2_xor_value(__v_2659, __v_2679, record) }; + let __v_2692: G = if unconstrained { Bytes2::xor(&__v_2656, &__v_2680) } else { bytes2_xor_value(__v_2656, __v_2680, record) }; + let __v_2693: G = if unconstrained { Bytes2::xor(&__v_2657, &__v_2681) } else { bytes2_xor_value(__v_2657, __v_2681, record) }; + let __u32_sum: u128 = u128::from(((__v_2660.as_canonical_u64() << 0) | (__v_2661.as_canonical_u64() << 8) | (__v_2662.as_canonical_u64() << 16) | (__v_2663.as_canonical_u64() << 24))) + u128::from(((__v_2691.as_canonical_u64() << 0) | (__v_2692.as_canonical_u64() << 8) | (__v_2693.as_canonical_u64() << 16) | (__v_2690.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2694: G = G::from_u8(__u32_bytes[0]); + let __v_2695: G = G::from_u8(__u32_bytes[1]); + let __v_2696: G = G::from_u8(__u32_bytes[2]); + let __v_2697: G = G::from_u8(__u32_bytes[3]); + let __v_2698: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2694; let __vj = __v_2695; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2696; let __vj = __v_2697; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2699: G = (__v_2698 * __v_2698); + if (__v_2699 != __v_2698) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2699.as_canonical_u64(), rhs: __v_2698.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2674, &__v_2694) } else { bytes2_xor_split7_value(__v_2674, __v_2694, record) }; + let __v_2700: G = __b2_out.0; + let __v_2701: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2675, &__v_2695) } else { bytes2_xor_split7_value(__v_2675, __v_2695, record) }; + let __v_2702: G = __b2_out.0; + let __v_2703: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2676, &__v_2696) } else { bytes2_xor_split7_value(__v_2676, __v_2696, record) }; + let __v_2704: G = __b2_out.0; + let __v_2705: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2677, &__v_2697) } else { bytes2_xor_split7_value(__v_2677, __v_2697, record) }; + let __v_2706: G = __b2_out.0; + let __v_2707: G = __b2_out.1; + let __v_2708: G = (__v_2700 + __v_2703); + let __v_2709: G = (__v_2702 + __v_2705); + let __v_2710: G = (__v_2704 + __v_2707); + let __v_2711: G = (__v_2706 + __v_2701); + let __u32_sum: u128 = u128::from(((__v_2474.as_canonical_u64() << 0) | (__v_2475.as_canonical_u64() << 8) | (__v_2476.as_canonical_u64() << 16) | (__v_2477.as_canonical_u64() << 24))) + u128::from(((__v_2572.as_canonical_u64() << 0) | (__v_2573.as_canonical_u64() << 8) | (__v_2574.as_canonical_u64() << 16) | (__v_2575.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2712: G = G::from_u8(__u32_bytes[0]); + let __v_2713: G = G::from_u8(__u32_bytes[1]); + let __v_2714: G = G::from_u8(__u32_bytes[2]); + let __v_2715: G = G::from_u8(__u32_bytes[3]); + let __v_2716: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2712; let __vj = __v_2713; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2714; let __vj = __v_2715; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2717: G = G::from_u64(1); + let __v_2718: G = (__v_2716 - __v_2717); + let __v_2719: G = G::from_u64(2); + let __v_2720: G = (__v_2716 - __v_2719); + let __v_2721: G = (__v_2718 * __v_2720); + let __v_2722: G = (__v_2716 * __v_2721); + let __v_2723: G = G::from_u64(0); + if (__v_2722 != __v_2723) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2722.as_canonical_u64(), rhs: __v_2723.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2724: G = if unconstrained { Bytes2::xor(&__v_2419, &__v_2712) } else { bytes2_xor_value(__v_2419, __v_2712, record) }; + let __v_2725: G = if unconstrained { Bytes2::xor(&__v_2420, &__v_2713) } else { bytes2_xor_value(__v_2420, __v_2713, record) }; + let __v_2726: G = if unconstrained { Bytes2::xor(&__v_2421, &__v_2714) } else { bytes2_xor_value(__v_2421, __v_2714, record) }; + let __v_2727: G = if unconstrained { Bytes2::xor(&__v_2418, &__v_2715) } else { bytes2_xor_value(__v_2418, __v_2715, record) }; + let __u32_sum: u128 = u128::from(((__v_2354.as_canonical_u64() << 0) | (__v_2355.as_canonical_u64() << 8) | (__v_2356.as_canonical_u64() << 16) | (__v_2357.as_canonical_u64() << 24))) + u128::from(((__v_2726.as_canonical_u64() << 0) | (__v_2727.as_canonical_u64() << 8) | (__v_2724.as_canonical_u64() << 16) | (__v_2725.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2728: G = G::from_u8(__u32_bytes[0]); + let __v_2729: G = G::from_u8(__u32_bytes[1]); + let __v_2730: G = G::from_u8(__u32_bytes[2]); + let __v_2731: G = G::from_u8(__u32_bytes[3]); + let __v_2732: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2728; let __vj = __v_2729; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2730; let __vj = __v_2731; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2733: G = (__v_2732 * __v_2732); + if (__v_2733 != __v_2732) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2733.as_canonical_u64(), rhs: __v_2732.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2572, &__v_2728) } else { bytes2_xor_split4_value(__v_2572, __v_2728, record) }; + let __v_2734: G = __b2_out.0; + let __v_2735: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2573, &__v_2729) } else { bytes2_xor_split4_value(__v_2573, __v_2729, record) }; + let __v_2736: G = __b2_out.0; + let __v_2737: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2574, &__v_2730) } else { bytes2_xor_split4_value(__v_2574, __v_2730, record) }; + let __v_2738: G = __b2_out.0; + let __v_2739: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2575, &__v_2731) } else { bytes2_xor_split4_value(__v_2575, __v_2731, record) }; + let __v_2740: G = __b2_out.0; + let __v_2741: G = __b2_out.1; + let __v_2742: G = (__v_2736 + __v_2739); + let __v_2743: G = (__v_2738 + __v_2741); + let __v_2744: G = (__v_2740 + __v_2735); + let __v_2745: G = (__v_2734 + __v_2737); + let __u32_sum: u128 = u128::from(((__v_2712.as_canonical_u64() << 0) | (__v_2713.as_canonical_u64() << 8) | (__v_2714.as_canonical_u64() << 16) | (__v_2715.as_canonical_u64() << 24))) + u128::from(((__v_2742.as_canonical_u64() << 0) | (__v_2743.as_canonical_u64() << 8) | (__v_2744.as_canonical_u64() << 16) | (__v_2745.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2746: G = G::from_u8(__u32_bytes[0]); + let __v_2747: G = G::from_u8(__u32_bytes[1]); + let __v_2748: G = G::from_u8(__u32_bytes[2]); + let __v_2749: G = G::from_u8(__u32_bytes[3]); + let __v_2750: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2746; let __vj = __v_2747; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2748; let __vj = __v_2749; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2751: G = G::from_u64(1); + let __v_2752: G = (__v_2750 - __v_2751); + let __v_2753: G = G::from_u64(2); + let __v_2754: G = (__v_2750 - __v_2753); + let __v_2755: G = (__v_2752 * __v_2754); + let __v_2756: G = (__v_2750 * __v_2755); + let __v_2757: G = G::from_u64(0); + if (__v_2756 != __v_2757) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2756.as_canonical_u64(), rhs: __v_2757.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2758: G = if unconstrained { Bytes2::xor(&__v_2726, &__v_2746) } else { bytes2_xor_value(__v_2726, __v_2746, record) }; + let __v_2759: G = if unconstrained { Bytes2::xor(&__v_2727, &__v_2747) } else { bytes2_xor_value(__v_2727, __v_2747, record) }; + let __v_2760: G = if unconstrained { Bytes2::xor(&__v_2724, &__v_2748) } else { bytes2_xor_value(__v_2724, __v_2748, record) }; + let __v_2761: G = if unconstrained { Bytes2::xor(&__v_2725, &__v_2749) } else { bytes2_xor_value(__v_2725, __v_2749, record) }; + let __u32_sum: u128 = u128::from(((__v_2728.as_canonical_u64() << 0) | (__v_2729.as_canonical_u64() << 8) | (__v_2730.as_canonical_u64() << 16) | (__v_2731.as_canonical_u64() << 24))) + u128::from(((__v_2759.as_canonical_u64() << 0) | (__v_2760.as_canonical_u64() << 8) | (__v_2761.as_canonical_u64() << 16) | (__v_2758.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2762: G = G::from_u8(__u32_bytes[0]); + let __v_2763: G = G::from_u8(__u32_bytes[1]); + let __v_2764: G = G::from_u8(__u32_bytes[2]); + let __v_2765: G = G::from_u8(__u32_bytes[3]); + let __v_2766: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2762; let __vj = __v_2763; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2764; let __vj = __v_2765; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2767: G = (__v_2766 * __v_2766); + if (__v_2767 != __v_2766) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2767.as_canonical_u64(), rhs: __v_2766.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2742, &__v_2762) } else { bytes2_xor_split7_value(__v_2742, __v_2762, record) }; + let __v_2768: G = __b2_out.0; + let __v_2769: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2743, &__v_2763) } else { bytes2_xor_split7_value(__v_2743, __v_2763, record) }; + let __v_2770: G = __b2_out.0; + let __v_2771: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2744, &__v_2764) } else { bytes2_xor_split7_value(__v_2744, __v_2764, record) }; + let __v_2772: G = __b2_out.0; + let __v_2773: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2745, &__v_2765) } else { bytes2_xor_split7_value(__v_2745, __v_2765, record) }; + let __v_2774: G = __b2_out.0; + let __v_2775: G = __b2_out.1; + let __v_2776: G = (__v_2768 + __v_2771); + let __v_2777: G = (__v_2770 + __v_2773); + let __v_2778: G = (__v_2772 + __v_2775); + let __v_2779: G = (__v_2774 + __v_2769); + let __u32_sum: u128 = u128::from(((__v_2542.as_canonical_u64() << 0) | (__v_2543.as_canonical_u64() << 8) | (__v_2544.as_canonical_u64() << 16) | (__v_2545.as_canonical_u64() << 24))) + u128::from(((__v_2368.as_canonical_u64() << 0) | (__v_2369.as_canonical_u64() << 8) | (__v_2370.as_canonical_u64() << 16) | (__v_2371.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2780: G = G::from_u8(__u32_bytes[0]); + let __v_2781: G = G::from_u8(__u32_bytes[1]); + let __v_2782: G = G::from_u8(__u32_bytes[2]); + let __v_2783: G = G::from_u8(__u32_bytes[3]); + let __v_2784: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2780; let __vj = __v_2781; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2782; let __vj = __v_2783; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2785: G = G::from_u64(1); + let __v_2786: G = (__v_2784 - __v_2785); + let __v_2787: G = G::from_u64(2); + let __v_2788: G = (__v_2784 - __v_2787); + let __v_2789: G = (__v_2786 * __v_2788); + let __v_2790: G = (__v_2784 * __v_2789); + let __v_2791: G = G::from_u64(0); + if (__v_2790 != __v_2791) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2790.as_canonical_u64(), rhs: __v_2791.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2792: G = if unconstrained { Bytes2::xor(&__v_2487, &__v_2780) } else { bytes2_xor_value(__v_2487, __v_2780, record) }; + let __v_2793: G = if unconstrained { Bytes2::xor(&__v_2488, &__v_2781) } else { bytes2_xor_value(__v_2488, __v_2781, record) }; + let __v_2794: G = if unconstrained { Bytes2::xor(&__v_2489, &__v_2782) } else { bytes2_xor_value(__v_2489, __v_2782, record) }; + let __v_2795: G = if unconstrained { Bytes2::xor(&__v_2486, &__v_2783) } else { bytes2_xor_value(__v_2486, __v_2783, record) }; + let __u32_sum: u128 = u128::from(((__v_2422.as_canonical_u64() << 0) | (__v_2423.as_canonical_u64() << 8) | (__v_2424.as_canonical_u64() << 16) | (__v_2425.as_canonical_u64() << 24))) + u128::from(((__v_2794.as_canonical_u64() << 0) | (__v_2795.as_canonical_u64() << 8) | (__v_2792.as_canonical_u64() << 16) | (__v_2793.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2796: G = G::from_u8(__u32_bytes[0]); + let __v_2797: G = G::from_u8(__u32_bytes[1]); + let __v_2798: G = G::from_u8(__u32_bytes[2]); + let __v_2799: G = G::from_u8(__u32_bytes[3]); + let __v_2800: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2796; let __vj = __v_2797; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2798; let __vj = __v_2799; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2801: G = (__v_2800 * __v_2800); + if (__v_2801 != __v_2800) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2801.as_canonical_u64(), rhs: __v_2800.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2368, &__v_2796) } else { bytes2_xor_split4_value(__v_2368, __v_2796, record) }; + let __v_2802: G = __b2_out.0; + let __v_2803: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2369, &__v_2797) } else { bytes2_xor_split4_value(__v_2369, __v_2797, record) }; + let __v_2804: G = __b2_out.0; + let __v_2805: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2370, &__v_2798) } else { bytes2_xor_split4_value(__v_2370, __v_2798, record) }; + let __v_2806: G = __b2_out.0; + let __v_2807: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2371, &__v_2799) } else { bytes2_xor_split4_value(__v_2371, __v_2799, record) }; + let __v_2808: G = __b2_out.0; + let __v_2809: G = __b2_out.1; + let __v_2810: G = (__v_2804 + __v_2807); + let __v_2811: G = (__v_2806 + __v_2809); + let __v_2812: G = (__v_2808 + __v_2803); + let __v_2813: G = (__v_2802 + __v_2805); + let __u32_sum: u128 = u128::from(((__v_2780.as_canonical_u64() << 0) | (__v_2781.as_canonical_u64() << 8) | (__v_2782.as_canonical_u64() << 16) | (__v_2783.as_canonical_u64() << 24))) + u128::from(((__v_2810.as_canonical_u64() << 0) | (__v_2811.as_canonical_u64() << 8) | (__v_2812.as_canonical_u64() << 16) | (__v_2813.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2814: G = G::from_u8(__u32_bytes[0]); + let __v_2815: G = G::from_u8(__u32_bytes[1]); + let __v_2816: G = G::from_u8(__u32_bytes[2]); + let __v_2817: G = G::from_u8(__u32_bytes[3]); + let __v_2818: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2814; let __vj = __v_2815; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2816; let __vj = __v_2817; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2819: G = G::from_u64(1); + let __v_2820: G = (__v_2818 - __v_2819); + let __v_2821: G = G::from_u64(2); + let __v_2822: G = (__v_2818 - __v_2821); + let __v_2823: G = (__v_2820 * __v_2822); + let __v_2824: G = (__v_2818 * __v_2823); + let __v_2825: G = G::from_u64(0); + if (__v_2824 != __v_2825) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2824.as_canonical_u64(), rhs: __v_2825.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2826: G = if unconstrained { Bytes2::xor(&__v_2794, &__v_2814) } else { bytes2_xor_value(__v_2794, __v_2814, record) }; + let __v_2827: G = if unconstrained { Bytes2::xor(&__v_2795, &__v_2815) } else { bytes2_xor_value(__v_2795, __v_2815, record) }; + let __v_2828: G = if unconstrained { Bytes2::xor(&__v_2792, &__v_2816) } else { bytes2_xor_value(__v_2792, __v_2816, record) }; + let __v_2829: G = if unconstrained { Bytes2::xor(&__v_2793, &__v_2817) } else { bytes2_xor_value(__v_2793, __v_2817, record) }; + let __u32_sum: u128 = u128::from(((__v_2796.as_canonical_u64() << 0) | (__v_2797.as_canonical_u64() << 8) | (__v_2798.as_canonical_u64() << 16) | (__v_2799.as_canonical_u64() << 24))) + u128::from(((__v_2827.as_canonical_u64() << 0) | (__v_2828.as_canonical_u64() << 8) | (__v_2829.as_canonical_u64() << 16) | (__v_2826.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2830: G = G::from_u8(__u32_bytes[0]); + let __v_2831: G = G::from_u8(__u32_bytes[1]); + let __v_2832: G = G::from_u8(__u32_bytes[2]); + let __v_2833: G = G::from_u8(__u32_bytes[3]); + let __v_2834: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2830; let __vj = __v_2831; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2832; let __vj = __v_2833; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2835: G = (__v_2834 * __v_2834); + if (__v_2835 != __v_2834) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2835.as_canonical_u64(), rhs: __v_2834.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2810, &__v_2830) } else { bytes2_xor_split7_value(__v_2810, __v_2830, record) }; + let __v_2836: G = __b2_out.0; + let __v_2837: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2811, &__v_2831) } else { bytes2_xor_split7_value(__v_2811, __v_2831, record) }; + let __v_2838: G = __b2_out.0; + let __v_2839: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2812, &__v_2832) } else { bytes2_xor_split7_value(__v_2812, __v_2832, record) }; + let __v_2840: G = __b2_out.0; + let __v_2841: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2813, &__v_2833) } else { bytes2_xor_split7_value(__v_2813, __v_2833, record) }; + let __v_2842: G = __b2_out.0; + let __v_2843: G = __b2_out.1; + let __v_2844: G = (__v_2836 + __v_2839); + let __v_2845: G = (__v_2838 + __v_2841); + let __v_2846: G = (__v_2840 + __v_2843); + let __v_2847: G = (__v_2842 + __v_2837); + let __u32_sum: u128 = u128::from(((__v_2610.as_canonical_u64() << 0) | (__v_2611.as_canonical_u64() << 8) | (__v_2612.as_canonical_u64() << 16) | (__v_2613.as_canonical_u64() << 24))) + u128::from(((__v_2844.as_canonical_u64() << 0) | (__v_2845.as_canonical_u64() << 8) | (__v_2846.as_canonical_u64() << 16) | (__v_2847.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2848: G = G::from_u8(__u32_bytes[0]); + let __v_2849: G = G::from_u8(__u32_bytes[1]); + let __v_2850: G = G::from_u8(__u32_bytes[2]); + let __v_2851: G = G::from_u8(__u32_bytes[3]); + let __v_2852: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2848; let __vj = __v_2849; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2850; let __vj = __v_2851; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2853: G = G::from_u64(1); + let __v_2854: G = (__v_2852 - __v_2853); + let __v_2855: G = G::from_u64(2); + let __v_2856: G = (__v_2852 - __v_2855); + let __v_2857: G = (__v_2854 * __v_2856); + let __v_2858: G = (__v_2852 * __v_2857); + let __v_2859: G = G::from_u64(0); + if (__v_2858 != __v_2859) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2858.as_canonical_u64(), rhs: __v_2859.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2860: G = if unconstrained { Bytes2::xor(&__v_2691, &__v_2848) } else { bytes2_xor_value(__v_2691, __v_2848, record) }; + let __v_2861: G = if unconstrained { Bytes2::xor(&__v_2692, &__v_2849) } else { bytes2_xor_value(__v_2692, __v_2849, record) }; + let __v_2862: G = if unconstrained { Bytes2::xor(&__v_2693, &__v_2850) } else { bytes2_xor_value(__v_2693, __v_2850, record) }; + let __v_2863: G = if unconstrained { Bytes2::xor(&__v_2690, &__v_2851) } else { bytes2_xor_value(__v_2690, __v_2851, record) }; + let __u32_sum: u128 = u128::from(((__v_2762.as_canonical_u64() << 0) | (__v_2763.as_canonical_u64() << 8) | (__v_2764.as_canonical_u64() << 16) | (__v_2765.as_canonical_u64() << 24))) + u128::from(((__v_2862.as_canonical_u64() << 0) | (__v_2863.as_canonical_u64() << 8) | (__v_2860.as_canonical_u64() << 16) | (__v_2861.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2864: G = G::from_u8(__u32_bytes[0]); + let __v_2865: G = G::from_u8(__u32_bytes[1]); + let __v_2866: G = G::from_u8(__u32_bytes[2]); + let __v_2867: G = G::from_u8(__u32_bytes[3]); + let __v_2868: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2864; let __vj = __v_2865; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2866; let __vj = __v_2867; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2869: G = (__v_2868 * __v_2868); + if (__v_2869 != __v_2868) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2869.as_canonical_u64(), rhs: __v_2868.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2844, &__v_2864) } else { bytes2_xor_split4_value(__v_2844, __v_2864, record) }; + let __v_2870: G = __b2_out.0; + let __v_2871: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2845, &__v_2865) } else { bytes2_xor_split4_value(__v_2845, __v_2865, record) }; + let __v_2872: G = __b2_out.0; + let __v_2873: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2846, &__v_2866) } else { bytes2_xor_split4_value(__v_2846, __v_2866, record) }; + let __v_2874: G = __b2_out.0; + let __v_2875: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2847, &__v_2867) } else { bytes2_xor_split4_value(__v_2847, __v_2867, record) }; + let __v_2876: G = __b2_out.0; + let __v_2877: G = __b2_out.1; + let __v_2878: G = (__v_2872 + __v_2875); + let __v_2879: G = (__v_2874 + __v_2877); + let __v_2880: G = (__v_2876 + __v_2871); + let __v_2881: G = (__v_2870 + __v_2873); + let __u32_sum: u128 = u128::from(((__v_2848.as_canonical_u64() << 0) | (__v_2849.as_canonical_u64() << 8) | (__v_2850.as_canonical_u64() << 16) | (__v_2851.as_canonical_u64() << 24))) + u128::from(((__v_2878.as_canonical_u64() << 0) | (__v_2879.as_canonical_u64() << 8) | (__v_2880.as_canonical_u64() << 16) | (__v_2881.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2882: G = G::from_u8(__u32_bytes[0]); + let __v_2883: G = G::from_u8(__u32_bytes[1]); + let __v_2884: G = G::from_u8(__u32_bytes[2]); + let __v_2885: G = G::from_u8(__u32_bytes[3]); + let __v_2886: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2882; let __vj = __v_2883; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2884; let __vj = __v_2885; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2887: G = G::from_u64(1); + let __v_2888: G = (__v_2886 - __v_2887); + let __v_2889: G = G::from_u64(2); + let __v_2890: G = (__v_2886 - __v_2889); + let __v_2891: G = (__v_2888 * __v_2890); + let __v_2892: G = (__v_2886 * __v_2891); + let __v_2893: G = G::from_u64(0); + if (__v_2892 != __v_2893) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2892.as_canonical_u64(), rhs: __v_2893.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2894: G = if unconstrained { Bytes2::xor(&__v_2862, &__v_2882) } else { bytes2_xor_value(__v_2862, __v_2882, record) }; + let __v_2895: G = if unconstrained { Bytes2::xor(&__v_2863, &__v_2883) } else { bytes2_xor_value(__v_2863, __v_2883, record) }; + let __v_2896: G = if unconstrained { Bytes2::xor(&__v_2860, &__v_2884) } else { bytes2_xor_value(__v_2860, __v_2884, record) }; + let __v_2897: G = if unconstrained { Bytes2::xor(&__v_2861, &__v_2885) } else { bytes2_xor_value(__v_2861, __v_2885, record) }; + let __u32_sum: u128 = u128::from(((__v_2864.as_canonical_u64() << 0) | (__v_2865.as_canonical_u64() << 8) | (__v_2866.as_canonical_u64() << 16) | (__v_2867.as_canonical_u64() << 24))) + u128::from(((__v_2895.as_canonical_u64() << 0) | (__v_2896.as_canonical_u64() << 8) | (__v_2897.as_canonical_u64() << 16) | (__v_2894.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2898: G = G::from_u8(__u32_bytes[0]); + let __v_2899: G = G::from_u8(__u32_bytes[1]); + let __v_2900: G = G::from_u8(__u32_bytes[2]); + let __v_2901: G = G::from_u8(__u32_bytes[3]); + let __v_2902: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2898; let __vj = __v_2899; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2900; let __vj = __v_2901; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2903: G = (__v_2902 * __v_2902); + if (__v_2903 != __v_2902) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2903.as_canonical_u64(), rhs: __v_2902.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2878, &__v_2898) } else { bytes2_xor_split7_value(__v_2878, __v_2898, record) }; + let __v_2904: G = __b2_out.0; + let __v_2905: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2879, &__v_2899) } else { bytes2_xor_split7_value(__v_2879, __v_2899, record) }; + let __v_2906: G = __b2_out.0; + let __v_2907: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2880, &__v_2900) } else { bytes2_xor_split7_value(__v_2880, __v_2900, record) }; + let __v_2908: G = __b2_out.0; + let __v_2909: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2881, &__v_2901) } else { bytes2_xor_split7_value(__v_2881, __v_2901, record) }; + let __v_2910: G = __b2_out.0; + let __v_2911: G = __b2_out.1; + let __v_2912: G = (__v_2904 + __v_2907); + let __v_2913: G = (__v_2906 + __v_2909); + let __v_2914: G = (__v_2908 + __v_2911); + let __v_2915: G = (__v_2910 + __v_2905); + let __u32_sum: u128 = u128::from(((__v_2678.as_canonical_u64() << 0) | (__v_2679.as_canonical_u64() << 8) | (__v_2680.as_canonical_u64() << 16) | (__v_2681.as_canonical_u64() << 24))) + u128::from(((__v_2640.as_canonical_u64() << 0) | (__v_2641.as_canonical_u64() << 8) | (__v_2642.as_canonical_u64() << 16) | (__v_2643.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2916: G = G::from_u8(__u32_bytes[0]); + let __v_2917: G = G::from_u8(__u32_bytes[1]); + let __v_2918: G = G::from_u8(__u32_bytes[2]); + let __v_2919: G = G::from_u8(__u32_bytes[3]); + let __v_2920: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2916; let __vj = __v_2917; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2918; let __vj = __v_2919; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2921: G = G::from_u64(1); + let __v_2922: G = (__v_2920 - __v_2921); + let __v_2923: G = G::from_u64(2); + let __v_2924: G = (__v_2920 - __v_2923); + let __v_2925: G = (__v_2922 * __v_2924); + let __v_2926: G = (__v_2920 * __v_2925); + let __v_2927: G = G::from_u64(0); + if (__v_2926 != __v_2927) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2926.as_canonical_u64(), rhs: __v_2927.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2928: G = if unconstrained { Bytes2::xor(&__v_2759, &__v_2916) } else { bytes2_xor_value(__v_2759, __v_2916, record) }; + let __v_2929: G = if unconstrained { Bytes2::xor(&__v_2760, &__v_2917) } else { bytes2_xor_value(__v_2760, __v_2917, record) }; + let __v_2930: G = if unconstrained { Bytes2::xor(&__v_2761, &__v_2918) } else { bytes2_xor_value(__v_2761, __v_2918, record) }; + let __v_2931: G = if unconstrained { Bytes2::xor(&__v_2758, &__v_2919) } else { bytes2_xor_value(__v_2758, __v_2919, record) }; + let __u32_sum: u128 = u128::from(((__v_2830.as_canonical_u64() << 0) | (__v_2831.as_canonical_u64() << 8) | (__v_2832.as_canonical_u64() << 16) | (__v_2833.as_canonical_u64() << 24))) + u128::from(((__v_2930.as_canonical_u64() << 0) | (__v_2931.as_canonical_u64() << 8) | (__v_2928.as_canonical_u64() << 16) | (__v_2929.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2932: G = G::from_u8(__u32_bytes[0]); + let __v_2933: G = G::from_u8(__u32_bytes[1]); + let __v_2934: G = G::from_u8(__u32_bytes[2]); + let __v_2935: G = G::from_u8(__u32_bytes[3]); + let __v_2936: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2932; let __vj = __v_2933; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2934; let __vj = __v_2935; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2937: G = (__v_2936 * __v_2936); + if (__v_2937 != __v_2936) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2937.as_canonical_u64(), rhs: __v_2936.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2640, &__v_2932) } else { bytes2_xor_split4_value(__v_2640, __v_2932, record) }; + let __v_2938: G = __b2_out.0; + let __v_2939: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2641, &__v_2933) } else { bytes2_xor_split4_value(__v_2641, __v_2933, record) }; + let __v_2940: G = __b2_out.0; + let __v_2941: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2642, &__v_2934) } else { bytes2_xor_split4_value(__v_2642, __v_2934, record) }; + let __v_2942: G = __b2_out.0; + let __v_2943: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2643, &__v_2935) } else { bytes2_xor_split4_value(__v_2643, __v_2935, record) }; + let __v_2944: G = __b2_out.0; + let __v_2945: G = __b2_out.1; + let __v_2946: G = (__v_2940 + __v_2943); + let __v_2947: G = (__v_2942 + __v_2945); + let __v_2948: G = (__v_2944 + __v_2939); + let __v_2949: G = (__v_2938 + __v_2941); + let __u32_sum: u128 = u128::from(((__v_2916.as_canonical_u64() << 0) | (__v_2917.as_canonical_u64() << 8) | (__v_2918.as_canonical_u64() << 16) | (__v_2919.as_canonical_u64() << 24))) + u128::from(((__v_2946.as_canonical_u64() << 0) | (__v_2947.as_canonical_u64() << 8) | (__v_2948.as_canonical_u64() << 16) | (__v_2949.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2950: G = G::from_u8(__u32_bytes[0]); + let __v_2951: G = G::from_u8(__u32_bytes[1]); + let __v_2952: G = G::from_u8(__u32_bytes[2]); + let __v_2953: G = G::from_u8(__u32_bytes[3]); + let __v_2954: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2950; let __vj = __v_2951; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2952; let __vj = __v_2953; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2955: G = G::from_u64(1); + let __v_2956: G = (__v_2954 - __v_2955); + let __v_2957: G = G::from_u64(2); + let __v_2958: G = (__v_2954 - __v_2957); + let __v_2959: G = (__v_2956 * __v_2958); + let __v_2960: G = (__v_2954 * __v_2959); + let __v_2961: G = G::from_u64(0); + if (__v_2960 != __v_2961) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2960.as_canonical_u64(), rhs: __v_2961.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2962: G = if unconstrained { Bytes2::xor(&__v_2930, &__v_2950) } else { bytes2_xor_value(__v_2930, __v_2950, record) }; + let __v_2963: G = if unconstrained { Bytes2::xor(&__v_2931, &__v_2951) } else { bytes2_xor_value(__v_2931, __v_2951, record) }; + let __v_2964: G = if unconstrained { Bytes2::xor(&__v_2928, &__v_2952) } else { bytes2_xor_value(__v_2928, __v_2952, record) }; + let __v_2965: G = if unconstrained { Bytes2::xor(&__v_2929, &__v_2953) } else { bytes2_xor_value(__v_2929, __v_2953, record) }; + let __u32_sum: u128 = u128::from(((__v_2932.as_canonical_u64() << 0) | (__v_2933.as_canonical_u64() << 8) | (__v_2934.as_canonical_u64() << 16) | (__v_2935.as_canonical_u64() << 24))) + u128::from(((__v_2963.as_canonical_u64() << 0) | (__v_2964.as_canonical_u64() << 8) | (__v_2965.as_canonical_u64() << 16) | (__v_2962.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2966: G = G::from_u8(__u32_bytes[0]); + let __v_2967: G = G::from_u8(__u32_bytes[1]); + let __v_2968: G = G::from_u8(__u32_bytes[2]); + let __v_2969: G = G::from_u8(__u32_bytes[3]); + let __v_2970: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2966; let __vj = __v_2967; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2968; let __vj = __v_2969; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2971: G = (__v_2970 * __v_2970); + if (__v_2971 != __v_2970) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2971.as_canonical_u64(), rhs: __v_2970.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2946, &__v_2966) } else { bytes2_xor_split7_value(__v_2946, __v_2966, record) }; + let __v_2972: G = __b2_out.0; + let __v_2973: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2947, &__v_2967) } else { bytes2_xor_split7_value(__v_2947, __v_2967, record) }; + let __v_2974: G = __b2_out.0; + let __v_2975: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2948, &__v_2968) } else { bytes2_xor_split7_value(__v_2948, __v_2968, record) }; + let __v_2976: G = __b2_out.0; + let __v_2977: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2949, &__v_2969) } else { bytes2_xor_split7_value(__v_2949, __v_2969, record) }; + let __v_2978: G = __b2_out.0; + let __v_2979: G = __b2_out.1; + let __v_2980: G = (__v_2972 + __v_2975); + let __v_2981: G = (__v_2974 + __v_2977); + let __v_2982: G = (__v_2976 + __v_2979); + let __v_2983: G = (__v_2978 + __v_2973); + let __u32_sum: u128 = u128::from(((__v_2746.as_canonical_u64() << 0) | (__v_2747.as_canonical_u64() << 8) | (__v_2748.as_canonical_u64() << 16) | (__v_2749.as_canonical_u64() << 24))) + u128::from(((__v_2708.as_canonical_u64() << 0) | (__v_2709.as_canonical_u64() << 8) | (__v_2710.as_canonical_u64() << 16) | (__v_2711.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2984: G = G::from_u8(__u32_bytes[0]); + let __v_2985: G = G::from_u8(__u32_bytes[1]); + let __v_2986: G = G::from_u8(__u32_bytes[2]); + let __v_2987: G = G::from_u8(__u32_bytes[3]); + let __v_2988: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2984; let __vj = __v_2985; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2986; let __vj = __v_2987; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2989: G = G::from_u64(1); + let __v_2990: G = (__v_2988 - __v_2989); + let __v_2991: G = G::from_u64(2); + let __v_2992: G = (__v_2988 - __v_2991); + let __v_2993: G = (__v_2990 * __v_2992); + let __v_2994: G = (__v_2988 * __v_2993); + let __v_2995: G = G::from_u64(0); + if (__v_2994 != __v_2995) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2994.as_canonical_u64(), rhs: __v_2995.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2996: G = if unconstrained { Bytes2::xor(&__v_2827, &__v_2984) } else { bytes2_xor_value(__v_2827, __v_2984, record) }; + let __v_2997: G = if unconstrained { Bytes2::xor(&__v_2828, &__v_2985) } else { bytes2_xor_value(__v_2828, __v_2985, record) }; + let __v_2998: G = if unconstrained { Bytes2::xor(&__v_2829, &__v_2986) } else { bytes2_xor_value(__v_2829, __v_2986, record) }; + let __v_2999: G = if unconstrained { Bytes2::xor(&__v_2826, &__v_2987) } else { bytes2_xor_value(__v_2826, __v_2987, record) }; + let __u32_sum: u128 = u128::from(((__v_2626.as_canonical_u64() << 0) | (__v_2627.as_canonical_u64() << 8) | (__v_2628.as_canonical_u64() << 16) | (__v_2629.as_canonical_u64() << 24))) + u128::from(((__v_2998.as_canonical_u64() << 0) | (__v_2999.as_canonical_u64() << 8) | (__v_2996.as_canonical_u64() << 16) | (__v_2997.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3000: G = G::from_u8(__u32_bytes[0]); + let __v_3001: G = G::from_u8(__u32_bytes[1]); + let __v_3002: G = G::from_u8(__u32_bytes[2]); + let __v_3003: G = G::from_u8(__u32_bytes[3]); + let __v_3004: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3000; let __vj = __v_3001; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3002; let __vj = __v_3003; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3005: G = (__v_3004 * __v_3004); + if (__v_3005 != __v_3004) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3005.as_canonical_u64(), rhs: __v_3004.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2708, &__v_3000) } else { bytes2_xor_split4_value(__v_2708, __v_3000, record) }; + let __v_3006: G = __b2_out.0; + let __v_3007: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2709, &__v_3001) } else { bytes2_xor_split4_value(__v_2709, __v_3001, record) }; + let __v_3008: G = __b2_out.0; + let __v_3009: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2710, &__v_3002) } else { bytes2_xor_split4_value(__v_2710, __v_3002, record) }; + let __v_3010: G = __b2_out.0; + let __v_3011: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2711, &__v_3003) } else { bytes2_xor_split4_value(__v_2711, __v_3003, record) }; + let __v_3012: G = __b2_out.0; + let __v_3013: G = __b2_out.1; + let __v_3014: G = (__v_3008 + __v_3011); + let __v_3015: G = (__v_3010 + __v_3013); + let __v_3016: G = (__v_3012 + __v_3007); + let __v_3017: G = (__v_3006 + __v_3009); + let __u32_sum: u128 = u128::from(((__v_2984.as_canonical_u64() << 0) | (__v_2985.as_canonical_u64() << 8) | (__v_2986.as_canonical_u64() << 16) | (__v_2987.as_canonical_u64() << 24))) + u128::from(((__v_3014.as_canonical_u64() << 0) | (__v_3015.as_canonical_u64() << 8) | (__v_3016.as_canonical_u64() << 16) | (__v_3017.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3018: G = G::from_u8(__u32_bytes[0]); + let __v_3019: G = G::from_u8(__u32_bytes[1]); + let __v_3020: G = G::from_u8(__u32_bytes[2]); + let __v_3021: G = G::from_u8(__u32_bytes[3]); + let __v_3022: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3018; let __vj = __v_3019; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3020; let __vj = __v_3021; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3023: G = G::from_u64(1); + let __v_3024: G = (__v_3022 - __v_3023); + let __v_3025: G = G::from_u64(2); + let __v_3026: G = (__v_3022 - __v_3025); + let __v_3027: G = (__v_3024 * __v_3026); + let __v_3028: G = (__v_3022 * __v_3027); + let __v_3029: G = G::from_u64(0); + if (__v_3028 != __v_3029) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3028.as_canonical_u64(), rhs: __v_3029.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3030: G = if unconstrained { Bytes2::xor(&__v_2998, &__v_3018) } else { bytes2_xor_value(__v_2998, __v_3018, record) }; + let __v_3031: G = if unconstrained { Bytes2::xor(&__v_2999, &__v_3019) } else { bytes2_xor_value(__v_2999, __v_3019, record) }; + let __v_3032: G = if unconstrained { Bytes2::xor(&__v_2996, &__v_3020) } else { bytes2_xor_value(__v_2996, __v_3020, record) }; + let __v_3033: G = if unconstrained { Bytes2::xor(&__v_2997, &__v_3021) } else { bytes2_xor_value(__v_2997, __v_3021, record) }; + let __u32_sum: u128 = u128::from(((__v_3000.as_canonical_u64() << 0) | (__v_3001.as_canonical_u64() << 8) | (__v_3002.as_canonical_u64() << 16) | (__v_3003.as_canonical_u64() << 24))) + u128::from(((__v_3031.as_canonical_u64() << 0) | (__v_3032.as_canonical_u64() << 8) | (__v_3033.as_canonical_u64() << 16) | (__v_3030.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3034: G = G::from_u8(__u32_bytes[0]); + let __v_3035: G = G::from_u8(__u32_bytes[1]); + let __v_3036: G = G::from_u8(__u32_bytes[2]); + let __v_3037: G = G::from_u8(__u32_bytes[3]); + let __v_3038: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3034; let __vj = __v_3035; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3036; let __vj = __v_3037; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3039: G = (__v_3038 * __v_3038); + if (__v_3039 != __v_3038) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3039.as_canonical_u64(), rhs: __v_3038.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3014, &__v_3034) } else { bytes2_xor_split7_value(__v_3014, __v_3034, record) }; + let __v_3040: G = __b2_out.0; + let __v_3041: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3015, &__v_3035) } else { bytes2_xor_split7_value(__v_3015, __v_3035, record) }; + let __v_3042: G = __b2_out.0; + let __v_3043: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3016, &__v_3036) } else { bytes2_xor_split7_value(__v_3016, __v_3036, record) }; + let __v_3044: G = __b2_out.0; + let __v_3045: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3017, &__v_3037) } else { bytes2_xor_split7_value(__v_3017, __v_3037, record) }; + let __v_3046: G = __b2_out.0; + let __v_3047: G = __b2_out.1; + let __v_3048: G = (__v_3040 + __v_3043); + let __v_3049: G = (__v_3042 + __v_3045); + let __v_3050: G = (__v_3044 + __v_3047); + let __v_3051: G = (__v_3046 + __v_3041); + let __u32_sum: u128 = u128::from(((__v_2814.as_canonical_u64() << 0) | (__v_2815.as_canonical_u64() << 8) | (__v_2816.as_canonical_u64() << 16) | (__v_2817.as_canonical_u64() << 24))) + u128::from(((__v_2776.as_canonical_u64() << 0) | (__v_2777.as_canonical_u64() << 8) | (__v_2778.as_canonical_u64() << 16) | (__v_2779.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3052: G = G::from_u8(__u32_bytes[0]); + let __v_3053: G = G::from_u8(__u32_bytes[1]); + let __v_3054: G = G::from_u8(__u32_bytes[2]); + let __v_3055: G = G::from_u8(__u32_bytes[3]); + let __v_3056: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3052; let __vj = __v_3053; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3054; let __vj = __v_3055; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3057: G = G::from_u64(1); + let __v_3058: G = (__v_3056 - __v_3057); + let __v_3059: G = G::from_u64(2); + let __v_3060: G = (__v_3056 - __v_3059); + let __v_3061: G = (__v_3058 * __v_3060); + let __v_3062: G = (__v_3056 * __v_3061); + let __v_3063: G = G::from_u64(0); + if (__v_3062 != __v_3063) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3062.as_canonical_u64(), rhs: __v_3063.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3064: G = if unconstrained { Bytes2::xor(&__v_2623, &__v_3052) } else { bytes2_xor_value(__v_2623, __v_3052, record) }; + let __v_3065: G = if unconstrained { Bytes2::xor(&__v_2624, &__v_3053) } else { bytes2_xor_value(__v_2624, __v_3053, record) }; + let __v_3066: G = if unconstrained { Bytes2::xor(&__v_2625, &__v_3054) } else { bytes2_xor_value(__v_2625, __v_3054, record) }; + let __v_3067: G = if unconstrained { Bytes2::xor(&__v_2622, &__v_3055) } else { bytes2_xor_value(__v_2622, __v_3055, record) }; + let __u32_sum: u128 = u128::from(((__v_2694.as_canonical_u64() << 0) | (__v_2695.as_canonical_u64() << 8) | (__v_2696.as_canonical_u64() << 16) | (__v_2697.as_canonical_u64() << 24))) + u128::from(((__v_3066.as_canonical_u64() << 0) | (__v_3067.as_canonical_u64() << 8) | (__v_3064.as_canonical_u64() << 16) | (__v_3065.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3068: G = G::from_u8(__u32_bytes[0]); + let __v_3069: G = G::from_u8(__u32_bytes[1]); + let __v_3070: G = G::from_u8(__u32_bytes[2]); + let __v_3071: G = G::from_u8(__u32_bytes[3]); + let __v_3072: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3068; let __vj = __v_3069; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3070; let __vj = __v_3071; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3073: G = (__v_3072 * __v_3072); + if (__v_3073 != __v_3072) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3073.as_canonical_u64(), rhs: __v_3072.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2776, &__v_3068) } else { bytes2_xor_split4_value(__v_2776, __v_3068, record) }; + let __v_3074: G = __b2_out.0; + let __v_3075: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2777, &__v_3069) } else { bytes2_xor_split4_value(__v_2777, __v_3069, record) }; + let __v_3076: G = __b2_out.0; + let __v_3077: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2778, &__v_3070) } else { bytes2_xor_split4_value(__v_2778, __v_3070, record) }; + let __v_3078: G = __b2_out.0; + let __v_3079: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2779, &__v_3071) } else { bytes2_xor_split4_value(__v_2779, __v_3071, record) }; + let __v_3080: G = __b2_out.0; + let __v_3081: G = __b2_out.1; + let __v_3082: G = (__v_3076 + __v_3079); + let __v_3083: G = (__v_3078 + __v_3081); + let __v_3084: G = (__v_3080 + __v_3075); + let __v_3085: G = (__v_3074 + __v_3077); + let __u32_sum: u128 = u128::from(((__v_3052.as_canonical_u64() << 0) | (__v_3053.as_canonical_u64() << 8) | (__v_3054.as_canonical_u64() << 16) | (__v_3055.as_canonical_u64() << 24))) + u128::from(((__v_3082.as_canonical_u64() << 0) | (__v_3083.as_canonical_u64() << 8) | (__v_3084.as_canonical_u64() << 16) | (__v_3085.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3086: G = G::from_u8(__u32_bytes[0]); + let __v_3087: G = G::from_u8(__u32_bytes[1]); + let __v_3088: G = G::from_u8(__u32_bytes[2]); + let __v_3089: G = G::from_u8(__u32_bytes[3]); + let __v_3090: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3086; let __vj = __v_3087; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3088; let __vj = __v_3089; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3091: G = G::from_u64(1); + let __v_3092: G = (__v_3090 - __v_3091); + let __v_3093: G = G::from_u64(2); + let __v_3094: G = (__v_3090 - __v_3093); + let __v_3095: G = (__v_3092 * __v_3094); + let __v_3096: G = (__v_3090 * __v_3095); + let __v_3097: G = G::from_u64(0); + if (__v_3096 != __v_3097) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3096.as_canonical_u64(), rhs: __v_3097.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3098: G = if unconstrained { Bytes2::xor(&__v_3066, &__v_3086) } else { bytes2_xor_value(__v_3066, __v_3086, record) }; + let __v_3099: G = if unconstrained { Bytes2::xor(&__v_3067, &__v_3087) } else { bytes2_xor_value(__v_3067, __v_3087, record) }; + let __v_3100: G = if unconstrained { Bytes2::xor(&__v_3064, &__v_3088) } else { bytes2_xor_value(__v_3064, __v_3088, record) }; + let __v_3101: G = if unconstrained { Bytes2::xor(&__v_3065, &__v_3089) } else { bytes2_xor_value(__v_3065, __v_3089, record) }; + let __u32_sum: u128 = u128::from(((__v_3068.as_canonical_u64() << 0) | (__v_3069.as_canonical_u64() << 8) | (__v_3070.as_canonical_u64() << 16) | (__v_3071.as_canonical_u64() << 24))) + u128::from(((__v_3099.as_canonical_u64() << 0) | (__v_3100.as_canonical_u64() << 8) | (__v_3101.as_canonical_u64() << 16) | (__v_3098.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3102: G = G::from_u8(__u32_bytes[0]); + let __v_3103: G = G::from_u8(__u32_bytes[1]); + let __v_3104: G = G::from_u8(__u32_bytes[2]); + let __v_3105: G = G::from_u8(__u32_bytes[3]); + let __v_3106: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3102; let __vj = __v_3103; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3104; let __vj = __v_3105; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3107: G = (__v_3106 * __v_3106); + if (__v_3107 != __v_3106) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3107.as_canonical_u64(), rhs: __v_3106.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3082, &__v_3102) } else { bytes2_xor_split7_value(__v_3082, __v_3102, record) }; + let __v_3108: G = __b2_out.0; + let __v_3109: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3083, &__v_3103) } else { bytes2_xor_split7_value(__v_3083, __v_3103, record) }; + let __v_3110: G = __b2_out.0; + let __v_3111: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3084, &__v_3104) } else { bytes2_xor_split7_value(__v_3084, __v_3104, record) }; + let __v_3112: G = __b2_out.0; + let __v_3113: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3085, &__v_3105) } else { bytes2_xor_split7_value(__v_3085, __v_3105, record) }; + let __v_3114: G = __b2_out.0; + let __v_3115: G = __b2_out.1; + let __v_3116: G = (__v_3108 + __v_3111); + let __v_3117: G = (__v_3110 + __v_3113); + let __v_3118: G = (__v_3112 + __v_3115); + let __v_3119: G = (__v_3114 + __v_3109); + let __u32_sum: u128 = u128::from(((__v_2882.as_canonical_u64() << 0) | (__v_2883.as_canonical_u64() << 8) | (__v_2884.as_canonical_u64() << 16) | (__v_2885.as_canonical_u64() << 24))) + u128::from(((__v_2980.as_canonical_u64() << 0) | (__v_2981.as_canonical_u64() << 8) | (__v_2982.as_canonical_u64() << 16) | (__v_2983.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3120: G = G::from_u8(__u32_bytes[0]); + let __v_3121: G = G::from_u8(__u32_bytes[1]); + let __v_3122: G = G::from_u8(__u32_bytes[2]); + let __v_3123: G = G::from_u8(__u32_bytes[3]); + let __v_3124: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3120; let __vj = __v_3121; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3122; let __vj = __v_3123; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3125: G = G::from_u64(1); + let __v_3126: G = (__v_3124 - __v_3125); + let __v_3127: G = G::from_u64(2); + let __v_3128: G = (__v_3124 - __v_3127); + let __v_3129: G = (__v_3126 * __v_3128); + let __v_3130: G = (__v_3124 * __v_3129); + let __v_3131: G = G::from_u64(0); + if (__v_3130 != __v_3131) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3130.as_canonical_u64(), rhs: __v_3131.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3132: G = if unconstrained { Bytes2::xor(&__v_3099, &__v_3120) } else { bytes2_xor_value(__v_3099, __v_3120, record) }; + let __v_3133: G = if unconstrained { Bytes2::xor(&__v_3100, &__v_3121) } else { bytes2_xor_value(__v_3100, __v_3121, record) }; + let __v_3134: G = if unconstrained { Bytes2::xor(&__v_3101, &__v_3122) } else { bytes2_xor_value(__v_3101, __v_3122, record) }; + let __v_3135: G = if unconstrained { Bytes2::xor(&__v_3098, &__v_3123) } else { bytes2_xor_value(__v_3098, __v_3123, record) }; + let __u32_sum: u128 = u128::from(((__v_3034.as_canonical_u64() << 0) | (__v_3035.as_canonical_u64() << 8) | (__v_3036.as_canonical_u64() << 16) | (__v_3037.as_canonical_u64() << 24))) + u128::from(((__v_3134.as_canonical_u64() << 0) | (__v_3135.as_canonical_u64() << 8) | (__v_3132.as_canonical_u64() << 16) | (__v_3133.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3136: G = G::from_u8(__u32_bytes[0]); + let __v_3137: G = G::from_u8(__u32_bytes[1]); + let __v_3138: G = G::from_u8(__u32_bytes[2]); + let __v_3139: G = G::from_u8(__u32_bytes[3]); + let __v_3140: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3136; let __vj = __v_3137; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3138; let __vj = __v_3139; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3141: G = (__v_3140 * __v_3140); + if (__v_3141 != __v_3140) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3141.as_canonical_u64(), rhs: __v_3140.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2980, &__v_3136) } else { bytes2_xor_split4_value(__v_2980, __v_3136, record) }; + let __v_3142: G = __b2_out.0; + let __v_3143: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2981, &__v_3137) } else { bytes2_xor_split4_value(__v_2981, __v_3137, record) }; + let __v_3144: G = __b2_out.0; + let __v_3145: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2982, &__v_3138) } else { bytes2_xor_split4_value(__v_2982, __v_3138, record) }; + let __v_3146: G = __b2_out.0; + let __v_3147: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2983, &__v_3139) } else { bytes2_xor_split4_value(__v_2983, __v_3139, record) }; + let __v_3148: G = __b2_out.0; + let __v_3149: G = __b2_out.1; + let __v_3150: G = (__v_3144 + __v_3147); + let __v_3151: G = (__v_3146 + __v_3149); + let __v_3152: G = (__v_3148 + __v_3143); + let __v_3153: G = (__v_3142 + __v_3145); + let __u32_sum: u128 = u128::from(((__v_3120.as_canonical_u64() << 0) | (__v_3121.as_canonical_u64() << 8) | (__v_3122.as_canonical_u64() << 16) | (__v_3123.as_canonical_u64() << 24))) + u128::from(((__v_3150.as_canonical_u64() << 0) | (__v_3151.as_canonical_u64() << 8) | (__v_3152.as_canonical_u64() << 16) | (__v_3153.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3154: G = G::from_u8(__u32_bytes[0]); + let __v_3155: G = G::from_u8(__u32_bytes[1]); + let __v_3156: G = G::from_u8(__u32_bytes[2]); + let __v_3157: G = G::from_u8(__u32_bytes[3]); + let __v_3158: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3154; let __vj = __v_3155; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3156; let __vj = __v_3157; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3159: G = G::from_u64(1); + let __v_3160: G = (__v_3158 - __v_3159); + let __v_3161: G = G::from_u64(2); + let __v_3162: G = (__v_3158 - __v_3161); + let __v_3163: G = (__v_3160 * __v_3162); + let __v_3164: G = (__v_3158 * __v_3163); + let __v_3165: G = G::from_u64(0); + if (__v_3164 != __v_3165) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3164.as_canonical_u64(), rhs: __v_3165.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3166: G = if unconstrained { Bytes2::xor(&__v_3134, &__v_3154) } else { bytes2_xor_value(__v_3134, __v_3154, record) }; + let __v_3167: G = if unconstrained { Bytes2::xor(&__v_3135, &__v_3155) } else { bytes2_xor_value(__v_3135, __v_3155, record) }; + let __v_3168: G = if unconstrained { Bytes2::xor(&__v_3132, &__v_3156) } else { bytes2_xor_value(__v_3132, __v_3156, record) }; + let __v_3169: G = if unconstrained { Bytes2::xor(&__v_3133, &__v_3157) } else { bytes2_xor_value(__v_3133, __v_3157, record) }; + let __u32_sum: u128 = u128::from(((__v_3136.as_canonical_u64() << 0) | (__v_3137.as_canonical_u64() << 8) | (__v_3138.as_canonical_u64() << 16) | (__v_3139.as_canonical_u64() << 24))) + u128::from(((__v_3167.as_canonical_u64() << 0) | (__v_3168.as_canonical_u64() << 8) | (__v_3169.as_canonical_u64() << 16) | (__v_3166.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3170: G = G::from_u8(__u32_bytes[0]); + let __v_3171: G = G::from_u8(__u32_bytes[1]); + let __v_3172: G = G::from_u8(__u32_bytes[2]); + let __v_3173: G = G::from_u8(__u32_bytes[3]); + let __v_3174: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3170; let __vj = __v_3171; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3172; let __vj = __v_3173; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3175: G = (__v_3174 * __v_3174); + if (__v_3175 != __v_3174) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3175.as_canonical_u64(), rhs: __v_3174.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3150, &__v_3170) } else { bytes2_xor_split7_value(__v_3150, __v_3170, record) }; + let __v_3176: G = __b2_out.0; + let __v_3177: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3151, &__v_3171) } else { bytes2_xor_split7_value(__v_3151, __v_3171, record) }; + let __v_3178: G = __b2_out.0; + let __v_3179: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3152, &__v_3172) } else { bytes2_xor_split7_value(__v_3152, __v_3172, record) }; + let __v_3180: G = __b2_out.0; + let __v_3181: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3153, &__v_3173) } else { bytes2_xor_split7_value(__v_3153, __v_3173, record) }; + let __v_3182: G = __b2_out.0; + let __v_3183: G = __b2_out.1; + let __v_3184: G = (__v_3176 + __v_3179); + let __v_3185: G = (__v_3178 + __v_3181); + let __v_3186: G = (__v_3180 + __v_3183); + let __v_3187: G = (__v_3182 + __v_3177); + let __u32_sum: u128 = u128::from(((__v_2950.as_canonical_u64() << 0) | (__v_2951.as_canonical_u64() << 8) | (__v_2952.as_canonical_u64() << 16) | (__v_2953.as_canonical_u64() << 24))) + u128::from(((__v_3048.as_canonical_u64() << 0) | (__v_3049.as_canonical_u64() << 8) | (__v_3050.as_canonical_u64() << 16) | (__v_3051.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3188: G = G::from_u8(__u32_bytes[0]); + let __v_3189: G = G::from_u8(__u32_bytes[1]); + let __v_3190: G = G::from_u8(__u32_bytes[2]); + let __v_3191: G = G::from_u8(__u32_bytes[3]); + let __v_3192: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3188; let __vj = __v_3189; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3190; let __vj = __v_3191; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3193: G = G::from_u64(1); + let __v_3194: G = (__v_3192 - __v_3193); + let __v_3195: G = G::from_u64(2); + let __v_3196: G = (__v_3192 - __v_3195); + let __v_3197: G = (__v_3194 * __v_3196); + let __v_3198: G = (__v_3192 * __v_3197); + let __v_3199: G = G::from_u64(0); + if (__v_3198 != __v_3199) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3198.as_canonical_u64(), rhs: __v_3199.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3200: G = if unconstrained { Bytes2::xor(&__v_2895, &__v_3188) } else { bytes2_xor_value(__v_2895, __v_3188, record) }; + let __v_3201: G = if unconstrained { Bytes2::xor(&__v_2896, &__v_3189) } else { bytes2_xor_value(__v_2896, __v_3189, record) }; + let __v_3202: G = if unconstrained { Bytes2::xor(&__v_2897, &__v_3190) } else { bytes2_xor_value(__v_2897, __v_3190, record) }; + let __v_3203: G = if unconstrained { Bytes2::xor(&__v_2894, &__v_3191) } else { bytes2_xor_value(__v_2894, __v_3191, record) }; + let __u32_sum: u128 = u128::from(((__v_3102.as_canonical_u64() << 0) | (__v_3103.as_canonical_u64() << 8) | (__v_3104.as_canonical_u64() << 16) | (__v_3105.as_canonical_u64() << 24))) + u128::from(((__v_3202.as_canonical_u64() << 0) | (__v_3203.as_canonical_u64() << 8) | (__v_3200.as_canonical_u64() << 16) | (__v_3201.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3204: G = G::from_u8(__u32_bytes[0]); + let __v_3205: G = G::from_u8(__u32_bytes[1]); + let __v_3206: G = G::from_u8(__u32_bytes[2]); + let __v_3207: G = G::from_u8(__u32_bytes[3]); + let __v_3208: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3204; let __vj = __v_3205; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3206; let __vj = __v_3207; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3209: G = (__v_3208 * __v_3208); + if (__v_3209 != __v_3208) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3209.as_canonical_u64(), rhs: __v_3208.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3048, &__v_3204) } else { bytes2_xor_split4_value(__v_3048, __v_3204, record) }; + let __v_3210: G = __b2_out.0; + let __v_3211: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3049, &__v_3205) } else { bytes2_xor_split4_value(__v_3049, __v_3205, record) }; + let __v_3212: G = __b2_out.0; + let __v_3213: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3050, &__v_3206) } else { bytes2_xor_split4_value(__v_3050, __v_3206, record) }; + let __v_3214: G = __b2_out.0; + let __v_3215: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3051, &__v_3207) } else { bytes2_xor_split4_value(__v_3051, __v_3207, record) }; + let __v_3216: G = __b2_out.0; + let __v_3217: G = __b2_out.1; + let __v_3218: G = (__v_3212 + __v_3215); + let __v_3219: G = (__v_3214 + __v_3217); + let __v_3220: G = (__v_3216 + __v_3211); + let __v_3221: G = (__v_3210 + __v_3213); + let __u32_sum: u128 = u128::from(((__v_3188.as_canonical_u64() << 0) | (__v_3189.as_canonical_u64() << 8) | (__v_3190.as_canonical_u64() << 16) | (__v_3191.as_canonical_u64() << 24))) + u128::from(((__v_3218.as_canonical_u64() << 0) | (__v_3219.as_canonical_u64() << 8) | (__v_3220.as_canonical_u64() << 16) | (__v_3221.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3222: G = G::from_u8(__u32_bytes[0]); + let __v_3223: G = G::from_u8(__u32_bytes[1]); + let __v_3224: G = G::from_u8(__u32_bytes[2]); + let __v_3225: G = G::from_u8(__u32_bytes[3]); + let __v_3226: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3222; let __vj = __v_3223; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3224; let __vj = __v_3225; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3227: G = G::from_u64(1); + let __v_3228: G = (__v_3226 - __v_3227); + let __v_3229: G = G::from_u64(2); + let __v_3230: G = (__v_3226 - __v_3229); + let __v_3231: G = (__v_3228 * __v_3230); + let __v_3232: G = (__v_3226 * __v_3231); + let __v_3233: G = G::from_u64(0); + if (__v_3232 != __v_3233) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3232.as_canonical_u64(), rhs: __v_3233.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3234: G = if unconstrained { Bytes2::xor(&__v_3202, &__v_3222) } else { bytes2_xor_value(__v_3202, __v_3222, record) }; + let __v_3235: G = if unconstrained { Bytes2::xor(&__v_3203, &__v_3223) } else { bytes2_xor_value(__v_3203, __v_3223, record) }; + let __v_3236: G = if unconstrained { Bytes2::xor(&__v_3200, &__v_3224) } else { bytes2_xor_value(__v_3200, __v_3224, record) }; + let __v_3237: G = if unconstrained { Bytes2::xor(&__v_3201, &__v_3225) } else { bytes2_xor_value(__v_3201, __v_3225, record) }; + let __u32_sum: u128 = u128::from(((__v_3204.as_canonical_u64() << 0) | (__v_3205.as_canonical_u64() << 8) | (__v_3206.as_canonical_u64() << 16) | (__v_3207.as_canonical_u64() << 24))) + u128::from(((__v_3235.as_canonical_u64() << 0) | (__v_3236.as_canonical_u64() << 8) | (__v_3237.as_canonical_u64() << 16) | (__v_3234.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3238: G = G::from_u8(__u32_bytes[0]); + let __v_3239: G = G::from_u8(__u32_bytes[1]); + let __v_3240: G = G::from_u8(__u32_bytes[2]); + let __v_3241: G = G::from_u8(__u32_bytes[3]); + let __v_3242: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3238; let __vj = __v_3239; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3240; let __vj = __v_3241; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3243: G = (__v_3242 * __v_3242); + if (__v_3243 != __v_3242) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3243.as_canonical_u64(), rhs: __v_3242.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3218, &__v_3238) } else { bytes2_xor_split7_value(__v_3218, __v_3238, record) }; + let __v_3244: G = __b2_out.0; + let __v_3245: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3219, &__v_3239) } else { bytes2_xor_split7_value(__v_3219, __v_3239, record) }; + let __v_3246: G = __b2_out.0; + let __v_3247: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3220, &__v_3240) } else { bytes2_xor_split7_value(__v_3220, __v_3240, record) }; + let __v_3248: G = __b2_out.0; + let __v_3249: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3221, &__v_3241) } else { bytes2_xor_split7_value(__v_3221, __v_3241, record) }; + let __v_3250: G = __b2_out.0; + let __v_3251: G = __b2_out.1; + let __v_3252: G = (__v_3244 + __v_3247); + let __v_3253: G = (__v_3246 + __v_3249); + let __v_3254: G = (__v_3248 + __v_3251); + let __v_3255: G = (__v_3250 + __v_3245); + let __u32_sum: u128 = u128::from(((__v_3018.as_canonical_u64() << 0) | (__v_3019.as_canonical_u64() << 8) | (__v_3020.as_canonical_u64() << 16) | (__v_3021.as_canonical_u64() << 24))) + u128::from(((__v_3116.as_canonical_u64() << 0) | (__v_3117.as_canonical_u64() << 8) | (__v_3118.as_canonical_u64() << 16) | (__v_3119.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3256: G = G::from_u8(__u32_bytes[0]); + let __v_3257: G = G::from_u8(__u32_bytes[1]); + let __v_3258: G = G::from_u8(__u32_bytes[2]); + let __v_3259: G = G::from_u8(__u32_bytes[3]); + let __v_3260: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3256; let __vj = __v_3257; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3258; let __vj = __v_3259; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3261: G = G::from_u64(1); + let __v_3262: G = (__v_3260 - __v_3261); + let __v_3263: G = G::from_u64(2); + let __v_3264: G = (__v_3260 - __v_3263); + let __v_3265: G = (__v_3262 * __v_3264); + let __v_3266: G = (__v_3260 * __v_3265); + let __v_3267: G = G::from_u64(0); + if (__v_3266 != __v_3267) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3266.as_canonical_u64(), rhs: __v_3267.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3268: G = if unconstrained { Bytes2::xor(&__v_2963, &__v_3256) } else { bytes2_xor_value(__v_2963, __v_3256, record) }; + let __v_3269: G = if unconstrained { Bytes2::xor(&__v_2964, &__v_3257) } else { bytes2_xor_value(__v_2964, __v_3257, record) }; + let __v_3270: G = if unconstrained { Bytes2::xor(&__v_2965, &__v_3258) } else { bytes2_xor_value(__v_2965, __v_3258, record) }; + let __v_3271: G = if unconstrained { Bytes2::xor(&__v_2962, &__v_3259) } else { bytes2_xor_value(__v_2962, __v_3259, record) }; + let __u32_sum: u128 = u128::from(((__v_2898.as_canonical_u64() << 0) | (__v_2899.as_canonical_u64() << 8) | (__v_2900.as_canonical_u64() << 16) | (__v_2901.as_canonical_u64() << 24))) + u128::from(((__v_3270.as_canonical_u64() << 0) | (__v_3271.as_canonical_u64() << 8) | (__v_3268.as_canonical_u64() << 16) | (__v_3269.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3272: G = G::from_u8(__u32_bytes[0]); + let __v_3273: G = G::from_u8(__u32_bytes[1]); + let __v_3274: G = G::from_u8(__u32_bytes[2]); + let __v_3275: G = G::from_u8(__u32_bytes[3]); + let __v_3276: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3272; let __vj = __v_3273; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3274; let __vj = __v_3275; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3277: G = (__v_3276 * __v_3276); + if (__v_3277 != __v_3276) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3277.as_canonical_u64(), rhs: __v_3276.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3116, &__v_3272) } else { bytes2_xor_split4_value(__v_3116, __v_3272, record) }; + let __v_3278: G = __b2_out.0; + let __v_3279: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3117, &__v_3273) } else { bytes2_xor_split4_value(__v_3117, __v_3273, record) }; + let __v_3280: G = __b2_out.0; + let __v_3281: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3118, &__v_3274) } else { bytes2_xor_split4_value(__v_3118, __v_3274, record) }; + let __v_3282: G = __b2_out.0; + let __v_3283: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3119, &__v_3275) } else { bytes2_xor_split4_value(__v_3119, __v_3275, record) }; + let __v_3284: G = __b2_out.0; + let __v_3285: G = __b2_out.1; + let __v_3286: G = (__v_3280 + __v_3283); + let __v_3287: G = (__v_3282 + __v_3285); + let __v_3288: G = (__v_3284 + __v_3279); + let __v_3289: G = (__v_3278 + __v_3281); + let __u32_sum: u128 = u128::from(((__v_3256.as_canonical_u64() << 0) | (__v_3257.as_canonical_u64() << 8) | (__v_3258.as_canonical_u64() << 16) | (__v_3259.as_canonical_u64() << 24))) + u128::from(((__v_3286.as_canonical_u64() << 0) | (__v_3287.as_canonical_u64() << 8) | (__v_3288.as_canonical_u64() << 16) | (__v_3289.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3290: G = G::from_u8(__u32_bytes[0]); + let __v_3291: G = G::from_u8(__u32_bytes[1]); + let __v_3292: G = G::from_u8(__u32_bytes[2]); + let __v_3293: G = G::from_u8(__u32_bytes[3]); + let __v_3294: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3290; let __vj = __v_3291; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3292; let __vj = __v_3293; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3295: G = G::from_u64(1); + let __v_3296: G = (__v_3294 - __v_3295); + let __v_3297: G = G::from_u64(2); + let __v_3298: G = (__v_3294 - __v_3297); + let __v_3299: G = (__v_3296 * __v_3298); + let __v_3300: G = (__v_3294 * __v_3299); + let __v_3301: G = G::from_u64(0); + if (__v_3300 != __v_3301) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3300.as_canonical_u64(), rhs: __v_3301.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3302: G = if unconstrained { Bytes2::xor(&__v_3270, &__v_3290) } else { bytes2_xor_value(__v_3270, __v_3290, record) }; + let __v_3303: G = if unconstrained { Bytes2::xor(&__v_3271, &__v_3291) } else { bytes2_xor_value(__v_3271, __v_3291, record) }; + let __v_3304: G = if unconstrained { Bytes2::xor(&__v_3268, &__v_3292) } else { bytes2_xor_value(__v_3268, __v_3292, record) }; + let __v_3305: G = if unconstrained { Bytes2::xor(&__v_3269, &__v_3293) } else { bytes2_xor_value(__v_3269, __v_3293, record) }; + let __u32_sum: u128 = u128::from(((__v_3272.as_canonical_u64() << 0) | (__v_3273.as_canonical_u64() << 8) | (__v_3274.as_canonical_u64() << 16) | (__v_3275.as_canonical_u64() << 24))) + u128::from(((__v_3303.as_canonical_u64() << 0) | (__v_3304.as_canonical_u64() << 8) | (__v_3305.as_canonical_u64() << 16) | (__v_3302.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3306: G = G::from_u8(__u32_bytes[0]); + let __v_3307: G = G::from_u8(__u32_bytes[1]); + let __v_3308: G = G::from_u8(__u32_bytes[2]); + let __v_3309: G = G::from_u8(__u32_bytes[3]); + let __v_3310: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3306; let __vj = __v_3307; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3308; let __vj = __v_3309; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3311: G = (__v_3310 * __v_3310); + if (__v_3311 != __v_3310) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3311.as_canonical_u64(), rhs: __v_3310.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3286, &__v_3306) } else { bytes2_xor_split7_value(__v_3286, __v_3306, record) }; + let __v_3312: G = __b2_out.0; + let __v_3313: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3287, &__v_3307) } else { bytes2_xor_split7_value(__v_3287, __v_3307, record) }; + let __v_3314: G = __b2_out.0; + let __v_3315: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3288, &__v_3308) } else { bytes2_xor_split7_value(__v_3288, __v_3308, record) }; + let __v_3316: G = __b2_out.0; + let __v_3317: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3289, &__v_3309) } else { bytes2_xor_split7_value(__v_3289, __v_3309, record) }; + let __v_3318: G = __b2_out.0; + let __v_3319: G = __b2_out.1; + let __v_3320: G = (__v_3312 + __v_3315); + let __v_3321: G = (__v_3314 + __v_3317); + let __v_3322: G = (__v_3316 + __v_3319); + let __v_3323: G = (__v_3318 + __v_3313); + let __u32_sum: u128 = u128::from(((__v_3086.as_canonical_u64() << 0) | (__v_3087.as_canonical_u64() << 8) | (__v_3088.as_canonical_u64() << 16) | (__v_3089.as_canonical_u64() << 24))) + u128::from(((__v_2912.as_canonical_u64() << 0) | (__v_2913.as_canonical_u64() << 8) | (__v_2914.as_canonical_u64() << 16) | (__v_2915.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3324: G = G::from_u8(__u32_bytes[0]); + let __v_3325: G = G::from_u8(__u32_bytes[1]); + let __v_3326: G = G::from_u8(__u32_bytes[2]); + let __v_3327: G = G::from_u8(__u32_bytes[3]); + let __v_3328: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3324; let __vj = __v_3325; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3326; let __vj = __v_3327; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3329: G = G::from_u64(1); + let __v_3330: G = (__v_3328 - __v_3329); + let __v_3331: G = G::from_u64(2); + let __v_3332: G = (__v_3328 - __v_3331); + let __v_3333: G = (__v_3330 * __v_3332); + let __v_3334: G = (__v_3328 * __v_3333); + let __v_3335: G = G::from_u64(0); + if (__v_3334 != __v_3335) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3334.as_canonical_u64(), rhs: __v_3335.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3336: G = if unconstrained { Bytes2::xor(&__v_3031, &__v_3324) } else { bytes2_xor_value(__v_3031, __v_3324, record) }; + let __v_3337: G = if unconstrained { Bytes2::xor(&__v_3032, &__v_3325) } else { bytes2_xor_value(__v_3032, __v_3325, record) }; + let __v_3338: G = if unconstrained { Bytes2::xor(&__v_3033, &__v_3326) } else { bytes2_xor_value(__v_3033, __v_3326, record) }; + let __v_3339: G = if unconstrained { Bytes2::xor(&__v_3030, &__v_3327) } else { bytes2_xor_value(__v_3030, __v_3327, record) }; + let __u32_sum: u128 = u128::from(((__v_2966.as_canonical_u64() << 0) | (__v_2967.as_canonical_u64() << 8) | (__v_2968.as_canonical_u64() << 16) | (__v_2969.as_canonical_u64() << 24))) + u128::from(((__v_3338.as_canonical_u64() << 0) | (__v_3339.as_canonical_u64() << 8) | (__v_3336.as_canonical_u64() << 16) | (__v_3337.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3340: G = G::from_u8(__u32_bytes[0]); + let __v_3341: G = G::from_u8(__u32_bytes[1]); + let __v_3342: G = G::from_u8(__u32_bytes[2]); + let __v_3343: G = G::from_u8(__u32_bytes[3]); + let __v_3344: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3340; let __vj = __v_3341; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3342; let __vj = __v_3343; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3345: G = (__v_3344 * __v_3344); + if (__v_3345 != __v_3344) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3345.as_canonical_u64(), rhs: __v_3344.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2912, &__v_3340) } else { bytes2_xor_split4_value(__v_2912, __v_3340, record) }; + let __v_3346: G = __b2_out.0; + let __v_3347: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2913, &__v_3341) } else { bytes2_xor_split4_value(__v_2913, __v_3341, record) }; + let __v_3348: G = __b2_out.0; + let __v_3349: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2914, &__v_3342) } else { bytes2_xor_split4_value(__v_2914, __v_3342, record) }; + let __v_3350: G = __b2_out.0; + let __v_3351: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2915, &__v_3343) } else { bytes2_xor_split4_value(__v_2915, __v_3343, record) }; + let __v_3352: G = __b2_out.0; + let __v_3353: G = __b2_out.1; + let __v_3354: G = (__v_3348 + __v_3351); + let __v_3355: G = (__v_3350 + __v_3353); + let __v_3356: G = (__v_3352 + __v_3347); + let __v_3357: G = (__v_3346 + __v_3349); + let __u32_sum: u128 = u128::from(((__v_3324.as_canonical_u64() << 0) | (__v_3325.as_canonical_u64() << 8) | (__v_3326.as_canonical_u64() << 16) | (__v_3327.as_canonical_u64() << 24))) + u128::from(((__v_3354.as_canonical_u64() << 0) | (__v_3355.as_canonical_u64() << 8) | (__v_3356.as_canonical_u64() << 16) | (__v_3357.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3358: G = G::from_u8(__u32_bytes[0]); + let __v_3359: G = G::from_u8(__u32_bytes[1]); + let __v_3360: G = G::from_u8(__u32_bytes[2]); + let __v_3361: G = G::from_u8(__u32_bytes[3]); + let __v_3362: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3358; let __vj = __v_3359; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3360; let __vj = __v_3361; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3363: G = G::from_u64(1); + let __v_3364: G = (__v_3362 - __v_3363); + let __v_3365: G = G::from_u64(2); + let __v_3366: G = (__v_3362 - __v_3365); + let __v_3367: G = (__v_3364 * __v_3366); + let __v_3368: G = (__v_3362 * __v_3367); + let __v_3369: G = G::from_u64(0); + if (__v_3368 != __v_3369) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3368.as_canonical_u64(), rhs: __v_3369.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3370: G = if unconstrained { Bytes2::xor(&__v_3338, &__v_3358) } else { bytes2_xor_value(__v_3338, __v_3358, record) }; + let __v_3371: G = if unconstrained { Bytes2::xor(&__v_3339, &__v_3359) } else { bytes2_xor_value(__v_3339, __v_3359, record) }; + let __v_3372: G = if unconstrained { Bytes2::xor(&__v_3336, &__v_3360) } else { bytes2_xor_value(__v_3336, __v_3360, record) }; + let __v_3373: G = if unconstrained { Bytes2::xor(&__v_3337, &__v_3361) } else { bytes2_xor_value(__v_3337, __v_3361, record) }; + let __u32_sum: u128 = u128::from(((__v_3340.as_canonical_u64() << 0) | (__v_3341.as_canonical_u64() << 8) | (__v_3342.as_canonical_u64() << 16) | (__v_3343.as_canonical_u64() << 24))) + u128::from(((__v_3371.as_canonical_u64() << 0) | (__v_3372.as_canonical_u64() << 8) | (__v_3373.as_canonical_u64() << 16) | (__v_3370.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3374: G = G::from_u8(__u32_bytes[0]); + let __v_3375: G = G::from_u8(__u32_bytes[1]); + let __v_3376: G = G::from_u8(__u32_bytes[2]); + let __v_3377: G = G::from_u8(__u32_bytes[3]); + let __v_3378: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3374; let __vj = __v_3375; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3376; let __vj = __v_3377; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3379: G = (__v_3378 * __v_3378); + if (__v_3379 != __v_3378) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3379.as_canonical_u64(), rhs: __v_3378.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3354, &__v_3374) } else { bytes2_xor_split7_value(__v_3354, __v_3374, record) }; + let __v_3380: G = __b2_out.0; + let __v_3381: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3355, &__v_3375) } else { bytes2_xor_split7_value(__v_3355, __v_3375, record) }; + let __v_3382: G = __b2_out.0; + let __v_3383: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3356, &__v_3376) } else { bytes2_xor_split7_value(__v_3356, __v_3376, record) }; + let __v_3384: G = __b2_out.0; + let __v_3385: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3357, &__v_3377) } else { bytes2_xor_split7_value(__v_3357, __v_3377, record) }; + let __v_3386: G = __b2_out.0; + let __v_3387: G = __b2_out.1; + let __v_3388: G = (__v_3380 + __v_3383); + let __v_3389: G = (__v_3382 + __v_3385); + let __v_3390: G = (__v_3384 + __v_3387); + let __v_3391: G = (__v_3386 + __v_3381); + let __u32_sum: u128 = u128::from(((__v_3154.as_canonical_u64() << 0) | (__v_3155.as_canonical_u64() << 8) | (__v_3156.as_canonical_u64() << 16) | (__v_3157.as_canonical_u64() << 24))) + u128::from(((__v_3388.as_canonical_u64() << 0) | (__v_3389.as_canonical_u64() << 8) | (__v_3390.as_canonical_u64() << 16) | (__v_3391.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3392: G = G::from_u8(__u32_bytes[0]); + let __v_3393: G = G::from_u8(__u32_bytes[1]); + let __v_3394: G = G::from_u8(__u32_bytes[2]); + let __v_3395: G = G::from_u8(__u32_bytes[3]); + let __v_3396: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3392; let __vj = __v_3393; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3394; let __vj = __v_3395; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3397: G = G::from_u64(1); + let __v_3398: G = (__v_3396 - __v_3397); + let __v_3399: G = G::from_u64(2); + let __v_3400: G = (__v_3396 - __v_3399); + let __v_3401: G = (__v_3398 * __v_3400); + let __v_3402: G = (__v_3396 * __v_3401); + let __v_3403: G = G::from_u64(0); + if (__v_3402 != __v_3403) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3402.as_canonical_u64(), rhs: __v_3403.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3404: G = if unconstrained { Bytes2::xor(&__v_3235, &__v_3392) } else { bytes2_xor_value(__v_3235, __v_3392, record) }; + let __v_3405: G = if unconstrained { Bytes2::xor(&__v_3236, &__v_3393) } else { bytes2_xor_value(__v_3236, __v_3393, record) }; + let __v_3406: G = if unconstrained { Bytes2::xor(&__v_3237, &__v_3394) } else { bytes2_xor_value(__v_3237, __v_3394, record) }; + let __v_3407: G = if unconstrained { Bytes2::xor(&__v_3234, &__v_3395) } else { bytes2_xor_value(__v_3234, __v_3395, record) }; + let __u32_sum: u128 = u128::from(((__v_3306.as_canonical_u64() << 0) | (__v_3307.as_canonical_u64() << 8) | (__v_3308.as_canonical_u64() << 16) | (__v_3309.as_canonical_u64() << 24))) + u128::from(((__v_3406.as_canonical_u64() << 0) | (__v_3407.as_canonical_u64() << 8) | (__v_3404.as_canonical_u64() << 16) | (__v_3405.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3408: G = G::from_u8(__u32_bytes[0]); + let __v_3409: G = G::from_u8(__u32_bytes[1]); + let __v_3410: G = G::from_u8(__u32_bytes[2]); + let __v_3411: G = G::from_u8(__u32_bytes[3]); + let __v_3412: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3408; let __vj = __v_3409; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3410; let __vj = __v_3411; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3413: G = (__v_3412 * __v_3412); + if (__v_3413 != __v_3412) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3413.as_canonical_u64(), rhs: __v_3412.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3388, &__v_3408) } else { bytes2_xor_split4_value(__v_3388, __v_3408, record) }; + let __v_3414: G = __b2_out.0; + let __v_3415: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3389, &__v_3409) } else { bytes2_xor_split4_value(__v_3389, __v_3409, record) }; + let __v_3416: G = __b2_out.0; + let __v_3417: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3390, &__v_3410) } else { bytes2_xor_split4_value(__v_3390, __v_3410, record) }; + let __v_3418: G = __b2_out.0; + let __v_3419: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3391, &__v_3411) } else { bytes2_xor_split4_value(__v_3391, __v_3411, record) }; + let __v_3420: G = __b2_out.0; + let __v_3421: G = __b2_out.1; + let __v_3422: G = (__v_3416 + __v_3419); + let __v_3423: G = (__v_3418 + __v_3421); + let __v_3424: G = (__v_3420 + __v_3415); + let __v_3425: G = (__v_3414 + __v_3417); + let __u32_sum: u128 = u128::from(((__v_3392.as_canonical_u64() << 0) | (__v_3393.as_canonical_u64() << 8) | (__v_3394.as_canonical_u64() << 16) | (__v_3395.as_canonical_u64() << 24))) + u128::from(((__v_3422.as_canonical_u64() << 0) | (__v_3423.as_canonical_u64() << 8) | (__v_3424.as_canonical_u64() << 16) | (__v_3425.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3426: G = G::from_u8(__u32_bytes[0]); + let __v_3427: G = G::from_u8(__u32_bytes[1]); + let __v_3428: G = G::from_u8(__u32_bytes[2]); + let __v_3429: G = G::from_u8(__u32_bytes[3]); + let __v_3430: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3426; let __vj = __v_3427; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3428; let __vj = __v_3429; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3431: G = G::from_u64(1); + let __v_3432: G = (__v_3430 - __v_3431); + let __v_3433: G = G::from_u64(2); + let __v_3434: G = (__v_3430 - __v_3433); + let __v_3435: G = (__v_3432 * __v_3434); + let __v_3436: G = (__v_3430 * __v_3435); + let __v_3437: G = G::from_u64(0); + if (__v_3436 != __v_3437) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3436.as_canonical_u64(), rhs: __v_3437.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3438: G = if unconstrained { Bytes2::xor(&__v_3406, &__v_3426) } else { bytes2_xor_value(__v_3406, __v_3426, record) }; + let __v_3439: G = if unconstrained { Bytes2::xor(&__v_3407, &__v_3427) } else { bytes2_xor_value(__v_3407, __v_3427, record) }; + let __v_3440: G = if unconstrained { Bytes2::xor(&__v_3404, &__v_3428) } else { bytes2_xor_value(__v_3404, __v_3428, record) }; + let __v_3441: G = if unconstrained { Bytes2::xor(&__v_3405, &__v_3429) } else { bytes2_xor_value(__v_3405, __v_3429, record) }; + let __u32_sum: u128 = u128::from(((__v_3408.as_canonical_u64() << 0) | (__v_3409.as_canonical_u64() << 8) | (__v_3410.as_canonical_u64() << 16) | (__v_3411.as_canonical_u64() << 24))) + u128::from(((__v_3439.as_canonical_u64() << 0) | (__v_3440.as_canonical_u64() << 8) | (__v_3441.as_canonical_u64() << 16) | (__v_3438.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3442: G = G::from_u8(__u32_bytes[0]); + let __v_3443: G = G::from_u8(__u32_bytes[1]); + let __v_3444: G = G::from_u8(__u32_bytes[2]); + let __v_3445: G = G::from_u8(__u32_bytes[3]); + let __v_3446: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3442; let __vj = __v_3443; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3444; let __vj = __v_3445; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3447: G = (__v_3446 * __v_3446); + if (__v_3447 != __v_3446) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3447.as_canonical_u64(), rhs: __v_3446.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3422, &__v_3442) } else { bytes2_xor_split7_value(__v_3422, __v_3442, record) }; + let __v_3448: G = __b2_out.0; + let __v_3449: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3423, &__v_3443) } else { bytes2_xor_split7_value(__v_3423, __v_3443, record) }; + let __v_3450: G = __b2_out.0; + let __v_3451: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3424, &__v_3444) } else { bytes2_xor_split7_value(__v_3424, __v_3444, record) }; + let __v_3452: G = __b2_out.0; + let __v_3453: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3425, &__v_3445) } else { bytes2_xor_split7_value(__v_3425, __v_3445, record) }; + let __v_3454: G = __b2_out.0; + let __v_3455: G = __b2_out.1; + let __v_3456: G = (__v_3448 + __v_3451); + let __v_3457: G = (__v_3450 + __v_3453); + let __v_3458: G = (__v_3452 + __v_3455); + let __v_3459: G = (__v_3454 + __v_3449); + let __u32_sum: u128 = u128::from(((__v_3222.as_canonical_u64() << 0) | (__v_3223.as_canonical_u64() << 8) | (__v_3224.as_canonical_u64() << 16) | (__v_3225.as_canonical_u64() << 24))) + u128::from(((__v_3184.as_canonical_u64() << 0) | (__v_3185.as_canonical_u64() << 8) | (__v_3186.as_canonical_u64() << 16) | (__v_3187.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3460: G = G::from_u8(__u32_bytes[0]); + let __v_3461: G = G::from_u8(__u32_bytes[1]); + let __v_3462: G = G::from_u8(__u32_bytes[2]); + let __v_3463: G = G::from_u8(__u32_bytes[3]); + let __v_3464: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3460; let __vj = __v_3461; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3462; let __vj = __v_3463; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3465: G = G::from_u64(1); + let __v_3466: G = (__v_3464 - __v_3465); + let __v_3467: G = G::from_u64(2); + let __v_3468: G = (__v_3464 - __v_3467); + let __v_3469: G = (__v_3466 * __v_3468); + let __v_3470: G = (__v_3464 * __v_3469); + let __v_3471: G = G::from_u64(0); + if (__v_3470 != __v_3471) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3470.as_canonical_u64(), rhs: __v_3471.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3472: G = if unconstrained { Bytes2::xor(&__v_3303, &__v_3460) } else { bytes2_xor_value(__v_3303, __v_3460, record) }; + let __v_3473: G = if unconstrained { Bytes2::xor(&__v_3304, &__v_3461) } else { bytes2_xor_value(__v_3304, __v_3461, record) }; + let __v_3474: G = if unconstrained { Bytes2::xor(&__v_3305, &__v_3462) } else { bytes2_xor_value(__v_3305, __v_3462, record) }; + let __v_3475: G = if unconstrained { Bytes2::xor(&__v_3302, &__v_3463) } else { bytes2_xor_value(__v_3302, __v_3463, record) }; + let __u32_sum: u128 = u128::from(((__v_3374.as_canonical_u64() << 0) | (__v_3375.as_canonical_u64() << 8) | (__v_3376.as_canonical_u64() << 16) | (__v_3377.as_canonical_u64() << 24))) + u128::from(((__v_3474.as_canonical_u64() << 0) | (__v_3475.as_canonical_u64() << 8) | (__v_3472.as_canonical_u64() << 16) | (__v_3473.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3476: G = G::from_u8(__u32_bytes[0]); + let __v_3477: G = G::from_u8(__u32_bytes[1]); + let __v_3478: G = G::from_u8(__u32_bytes[2]); + let __v_3479: G = G::from_u8(__u32_bytes[3]); + let __v_3480: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3476; let __vj = __v_3477; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3478; let __vj = __v_3479; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3481: G = (__v_3480 * __v_3480); + if (__v_3481 != __v_3480) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3481.as_canonical_u64(), rhs: __v_3480.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3184, &__v_3476) } else { bytes2_xor_split4_value(__v_3184, __v_3476, record) }; + let __v_3482: G = __b2_out.0; + let __v_3483: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3185, &__v_3477) } else { bytes2_xor_split4_value(__v_3185, __v_3477, record) }; + let __v_3484: G = __b2_out.0; + let __v_3485: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3186, &__v_3478) } else { bytes2_xor_split4_value(__v_3186, __v_3478, record) }; + let __v_3486: G = __b2_out.0; + let __v_3487: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3187, &__v_3479) } else { bytes2_xor_split4_value(__v_3187, __v_3479, record) }; + let __v_3488: G = __b2_out.0; + let __v_3489: G = __b2_out.1; + let __v_3490: G = (__v_3484 + __v_3487); + let __v_3491: G = (__v_3486 + __v_3489); + let __v_3492: G = (__v_3488 + __v_3483); + let __v_3493: G = (__v_3482 + __v_3485); + let __u32_sum: u128 = u128::from(((__v_3460.as_canonical_u64() << 0) | (__v_3461.as_canonical_u64() << 8) | (__v_3462.as_canonical_u64() << 16) | (__v_3463.as_canonical_u64() << 24))) + u128::from(((__v_3490.as_canonical_u64() << 0) | (__v_3491.as_canonical_u64() << 8) | (__v_3492.as_canonical_u64() << 16) | (__v_3493.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3494: G = G::from_u8(__u32_bytes[0]); + let __v_3495: G = G::from_u8(__u32_bytes[1]); + let __v_3496: G = G::from_u8(__u32_bytes[2]); + let __v_3497: G = G::from_u8(__u32_bytes[3]); + let __v_3498: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3494; let __vj = __v_3495; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3496; let __vj = __v_3497; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3499: G = G::from_u64(1); + let __v_3500: G = (__v_3498 - __v_3499); + let __v_3501: G = G::from_u64(2); + let __v_3502: G = (__v_3498 - __v_3501); + let __v_3503: G = (__v_3500 * __v_3502); + let __v_3504: G = (__v_3498 * __v_3503); + let __v_3505: G = G::from_u64(0); + if (__v_3504 != __v_3505) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3504.as_canonical_u64(), rhs: __v_3505.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3506: G = if unconstrained { Bytes2::xor(&__v_3474, &__v_3494) } else { bytes2_xor_value(__v_3474, __v_3494, record) }; + let __v_3507: G = if unconstrained { Bytes2::xor(&__v_3475, &__v_3495) } else { bytes2_xor_value(__v_3475, __v_3495, record) }; + let __v_3508: G = if unconstrained { Bytes2::xor(&__v_3472, &__v_3496) } else { bytes2_xor_value(__v_3472, __v_3496, record) }; + let __v_3509: G = if unconstrained { Bytes2::xor(&__v_3473, &__v_3497) } else { bytes2_xor_value(__v_3473, __v_3497, record) }; + let __u32_sum: u128 = u128::from(((__v_3476.as_canonical_u64() << 0) | (__v_3477.as_canonical_u64() << 8) | (__v_3478.as_canonical_u64() << 16) | (__v_3479.as_canonical_u64() << 24))) + u128::from(((__v_3507.as_canonical_u64() << 0) | (__v_3508.as_canonical_u64() << 8) | (__v_3509.as_canonical_u64() << 16) | (__v_3506.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3510: G = G::from_u8(__u32_bytes[0]); + let __v_3511: G = G::from_u8(__u32_bytes[1]); + let __v_3512: G = G::from_u8(__u32_bytes[2]); + let __v_3513: G = G::from_u8(__u32_bytes[3]); + let __v_3514: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3510; let __vj = __v_3511; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3512; let __vj = __v_3513; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3515: G = (__v_3514 * __v_3514); + if (__v_3515 != __v_3514) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3515.as_canonical_u64(), rhs: __v_3514.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3490, &__v_3510) } else { bytes2_xor_split7_value(__v_3490, __v_3510, record) }; + let __v_3516: G = __b2_out.0; + let __v_3517: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3491, &__v_3511) } else { bytes2_xor_split7_value(__v_3491, __v_3511, record) }; + let __v_3518: G = __b2_out.0; + let __v_3519: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3492, &__v_3512) } else { bytes2_xor_split7_value(__v_3492, __v_3512, record) }; + let __v_3520: G = __b2_out.0; + let __v_3521: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3493, &__v_3513) } else { bytes2_xor_split7_value(__v_3493, __v_3513, record) }; + let __v_3522: G = __b2_out.0; + let __v_3523: G = __b2_out.1; + let __v_3524: G = (__v_3516 + __v_3519); + let __v_3525: G = (__v_3518 + __v_3521); + let __v_3526: G = (__v_3520 + __v_3523); + let __v_3527: G = (__v_3522 + __v_3517); + let __u32_sum: u128 = u128::from(((__v_3290.as_canonical_u64() << 0) | (__v_3291.as_canonical_u64() << 8) | (__v_3292.as_canonical_u64() << 16) | (__v_3293.as_canonical_u64() << 24))) + u128::from(((__v_3252.as_canonical_u64() << 0) | (__v_3253.as_canonical_u64() << 8) | (__v_3254.as_canonical_u64() << 16) | (__v_3255.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3528: G = G::from_u8(__u32_bytes[0]); + let __v_3529: G = G::from_u8(__u32_bytes[1]); + let __v_3530: G = G::from_u8(__u32_bytes[2]); + let __v_3531: G = G::from_u8(__u32_bytes[3]); + let __v_3532: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3528; let __vj = __v_3529; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3530; let __vj = __v_3531; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3533: G = G::from_u64(1); + let __v_3534: G = (__v_3532 - __v_3533); + let __v_3535: G = G::from_u64(2); + let __v_3536: G = (__v_3532 - __v_3535); + let __v_3537: G = (__v_3534 * __v_3536); + let __v_3538: G = (__v_3532 * __v_3537); + let __v_3539: G = G::from_u64(0); + if (__v_3538 != __v_3539) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3538.as_canonical_u64(), rhs: __v_3539.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3540: G = if unconstrained { Bytes2::xor(&__v_3371, &__v_3528) } else { bytes2_xor_value(__v_3371, __v_3528, record) }; + let __v_3541: G = if unconstrained { Bytes2::xor(&__v_3372, &__v_3529) } else { bytes2_xor_value(__v_3372, __v_3529, record) }; + let __v_3542: G = if unconstrained { Bytes2::xor(&__v_3373, &__v_3530) } else { bytes2_xor_value(__v_3373, __v_3530, record) }; + let __v_3543: G = if unconstrained { Bytes2::xor(&__v_3370, &__v_3531) } else { bytes2_xor_value(__v_3370, __v_3531, record) }; + let __u32_sum: u128 = u128::from(((__v_3170.as_canonical_u64() << 0) | (__v_3171.as_canonical_u64() << 8) | (__v_3172.as_canonical_u64() << 16) | (__v_3173.as_canonical_u64() << 24))) + u128::from(((__v_3542.as_canonical_u64() << 0) | (__v_3543.as_canonical_u64() << 8) | (__v_3540.as_canonical_u64() << 16) | (__v_3541.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3544: G = G::from_u8(__u32_bytes[0]); + let __v_3545: G = G::from_u8(__u32_bytes[1]); + let __v_3546: G = G::from_u8(__u32_bytes[2]); + let __v_3547: G = G::from_u8(__u32_bytes[3]); + let __v_3548: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3544; let __vj = __v_3545; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3546; let __vj = __v_3547; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3549: G = (__v_3548 * __v_3548); + if (__v_3549 != __v_3548) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3549.as_canonical_u64(), rhs: __v_3548.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3252, &__v_3544) } else { bytes2_xor_split4_value(__v_3252, __v_3544, record) }; + let __v_3550: G = __b2_out.0; + let __v_3551: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3253, &__v_3545) } else { bytes2_xor_split4_value(__v_3253, __v_3545, record) }; + let __v_3552: G = __b2_out.0; + let __v_3553: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3254, &__v_3546) } else { bytes2_xor_split4_value(__v_3254, __v_3546, record) }; + let __v_3554: G = __b2_out.0; + let __v_3555: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3255, &__v_3547) } else { bytes2_xor_split4_value(__v_3255, __v_3547, record) }; + let __v_3556: G = __b2_out.0; + let __v_3557: G = __b2_out.1; + let __v_3558: G = (__v_3552 + __v_3555); + let __v_3559: G = (__v_3554 + __v_3557); + let __v_3560: G = (__v_3556 + __v_3551); + let __v_3561: G = (__v_3550 + __v_3553); + let __u32_sum: u128 = u128::from(((__v_3528.as_canonical_u64() << 0) | (__v_3529.as_canonical_u64() << 8) | (__v_3530.as_canonical_u64() << 16) | (__v_3531.as_canonical_u64() << 24))) + u128::from(((__v_3558.as_canonical_u64() << 0) | (__v_3559.as_canonical_u64() << 8) | (__v_3560.as_canonical_u64() << 16) | (__v_3561.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3562: G = G::from_u8(__u32_bytes[0]); + let __v_3563: G = G::from_u8(__u32_bytes[1]); + let __v_3564: G = G::from_u8(__u32_bytes[2]); + let __v_3565: G = G::from_u8(__u32_bytes[3]); + let __v_3566: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3562; let __vj = __v_3563; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3564; let __vj = __v_3565; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3567: G = G::from_u64(1); + let __v_3568: G = (__v_3566 - __v_3567); + let __v_3569: G = G::from_u64(2); + let __v_3570: G = (__v_3566 - __v_3569); + let __v_3571: G = (__v_3568 * __v_3570); + let __v_3572: G = (__v_3566 * __v_3571); + let __v_3573: G = G::from_u64(0); + if (__v_3572 != __v_3573) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3572.as_canonical_u64(), rhs: __v_3573.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3574: G = if unconstrained { Bytes2::xor(&__v_3542, &__v_3562) } else { bytes2_xor_value(__v_3542, __v_3562, record) }; + let __v_3575: G = if unconstrained { Bytes2::xor(&__v_3543, &__v_3563) } else { bytes2_xor_value(__v_3543, __v_3563, record) }; + let __v_3576: G = if unconstrained { Bytes2::xor(&__v_3540, &__v_3564) } else { bytes2_xor_value(__v_3540, __v_3564, record) }; + let __v_3577: G = if unconstrained { Bytes2::xor(&__v_3541, &__v_3565) } else { bytes2_xor_value(__v_3541, __v_3565, record) }; + let __u32_sum: u128 = u128::from(((__v_3544.as_canonical_u64() << 0) | (__v_3545.as_canonical_u64() << 8) | (__v_3546.as_canonical_u64() << 16) | (__v_3547.as_canonical_u64() << 24))) + u128::from(((__v_3575.as_canonical_u64() << 0) | (__v_3576.as_canonical_u64() << 8) | (__v_3577.as_canonical_u64() << 16) | (__v_3574.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3578: G = G::from_u8(__u32_bytes[0]); + let __v_3579: G = G::from_u8(__u32_bytes[1]); + let __v_3580: G = G::from_u8(__u32_bytes[2]); + let __v_3581: G = G::from_u8(__u32_bytes[3]); + let __v_3582: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3578; let __vj = __v_3579; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3580; let __vj = __v_3581; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3583: G = (__v_3582 * __v_3582); + if (__v_3583 != __v_3582) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3583.as_canonical_u64(), rhs: __v_3582.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3558, &__v_3578) } else { bytes2_xor_split7_value(__v_3558, __v_3578, record) }; + let __v_3584: G = __b2_out.0; + let __v_3585: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3559, &__v_3579) } else { bytes2_xor_split7_value(__v_3559, __v_3579, record) }; + let __v_3586: G = __b2_out.0; + let __v_3587: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3560, &__v_3580) } else { bytes2_xor_split7_value(__v_3560, __v_3580, record) }; + let __v_3588: G = __b2_out.0; + let __v_3589: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3561, &__v_3581) } else { bytes2_xor_split7_value(__v_3561, __v_3581, record) }; + let __v_3590: G = __b2_out.0; + let __v_3591: G = __b2_out.1; + let __v_3592: G = (__v_3584 + __v_3587); + let __v_3593: G = (__v_3586 + __v_3589); + let __v_3594: G = (__v_3588 + __v_3591); + let __v_3595: G = (__v_3590 + __v_3585); + let __u32_sum: u128 = u128::from(((__v_3358.as_canonical_u64() << 0) | (__v_3359.as_canonical_u64() << 8) | (__v_3360.as_canonical_u64() << 16) | (__v_3361.as_canonical_u64() << 24))) + u128::from(((__v_3320.as_canonical_u64() << 0) | (__v_3321.as_canonical_u64() << 8) | (__v_3322.as_canonical_u64() << 16) | (__v_3323.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3596: G = G::from_u8(__u32_bytes[0]); + let __v_3597: G = G::from_u8(__u32_bytes[1]); + let __v_3598: G = G::from_u8(__u32_bytes[2]); + let __v_3599: G = G::from_u8(__u32_bytes[3]); + let __v_3600: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3596; let __vj = __v_3597; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3598; let __vj = __v_3599; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3601: G = G::from_u64(1); + let __v_3602: G = (__v_3600 - __v_3601); + let __v_3603: G = G::from_u64(2); + let __v_3604: G = (__v_3600 - __v_3603); + let __v_3605: G = (__v_3602 * __v_3604); + let __v_3606: G = (__v_3600 * __v_3605); + let __v_3607: G = G::from_u64(0); + if (__v_3606 != __v_3607) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3606.as_canonical_u64(), rhs: __v_3607.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3608: G = if unconstrained { Bytes2::xor(&__v_3167, &__v_3596) } else { bytes2_xor_value(__v_3167, __v_3596, record) }; + let __v_3609: G = if unconstrained { Bytes2::xor(&__v_3168, &__v_3597) } else { bytes2_xor_value(__v_3168, __v_3597, record) }; + let __v_3610: G = if unconstrained { Bytes2::xor(&__v_3169, &__v_3598) } else { bytes2_xor_value(__v_3169, __v_3598, record) }; + let __v_3611: G = if unconstrained { Bytes2::xor(&__v_3166, &__v_3599) } else { bytes2_xor_value(__v_3166, __v_3599, record) }; + let __u32_sum: u128 = u128::from(((__v_3238.as_canonical_u64() << 0) | (__v_3239.as_canonical_u64() << 8) | (__v_3240.as_canonical_u64() << 16) | (__v_3241.as_canonical_u64() << 24))) + u128::from(((__v_3610.as_canonical_u64() << 0) | (__v_3611.as_canonical_u64() << 8) | (__v_3608.as_canonical_u64() << 16) | (__v_3609.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3612: G = G::from_u8(__u32_bytes[0]); + let __v_3613: G = G::from_u8(__u32_bytes[1]); + let __v_3614: G = G::from_u8(__u32_bytes[2]); + let __v_3615: G = G::from_u8(__u32_bytes[3]); + let __v_3616: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3612; let __vj = __v_3613; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3614; let __vj = __v_3615; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3617: G = (__v_3616 * __v_3616); + if (__v_3617 != __v_3616) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3617.as_canonical_u64(), rhs: __v_3616.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3320, &__v_3612) } else { bytes2_xor_split4_value(__v_3320, __v_3612, record) }; + let __v_3618: G = __b2_out.0; + let __v_3619: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3321, &__v_3613) } else { bytes2_xor_split4_value(__v_3321, __v_3613, record) }; + let __v_3620: G = __b2_out.0; + let __v_3621: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3322, &__v_3614) } else { bytes2_xor_split4_value(__v_3322, __v_3614, record) }; + let __v_3622: G = __b2_out.0; + let __v_3623: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3323, &__v_3615) } else { bytes2_xor_split4_value(__v_3323, __v_3615, record) }; + let __v_3624: G = __b2_out.0; + let __v_3625: G = __b2_out.1; + let __v_3626: G = (__v_3620 + __v_3623); + let __v_3627: G = (__v_3622 + __v_3625); + let __v_3628: G = (__v_3624 + __v_3619); + let __v_3629: G = (__v_3618 + __v_3621); + let __u32_sum: u128 = u128::from(((__v_3596.as_canonical_u64() << 0) | (__v_3597.as_canonical_u64() << 8) | (__v_3598.as_canonical_u64() << 16) | (__v_3599.as_canonical_u64() << 24))) + u128::from(((__v_3626.as_canonical_u64() << 0) | (__v_3627.as_canonical_u64() << 8) | (__v_3628.as_canonical_u64() << 16) | (__v_3629.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3630: G = G::from_u8(__u32_bytes[0]); + let __v_3631: G = G::from_u8(__u32_bytes[1]); + let __v_3632: G = G::from_u8(__u32_bytes[2]); + let __v_3633: G = G::from_u8(__u32_bytes[3]); + let __v_3634: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3630; let __vj = __v_3631; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3632; let __vj = __v_3633; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3635: G = G::from_u64(1); + let __v_3636: G = (__v_3634 - __v_3635); + let __v_3637: G = G::from_u64(2); + let __v_3638: G = (__v_3634 - __v_3637); + let __v_3639: G = (__v_3636 * __v_3638); + let __v_3640: G = (__v_3634 * __v_3639); + let __v_3641: G = G::from_u64(0); + if (__v_3640 != __v_3641) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3640.as_canonical_u64(), rhs: __v_3641.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3642: G = if unconstrained { Bytes2::xor(&__v_3610, &__v_3630) } else { bytes2_xor_value(__v_3610, __v_3630, record) }; + let __v_3643: G = if unconstrained { Bytes2::xor(&__v_3611, &__v_3631) } else { bytes2_xor_value(__v_3611, __v_3631, record) }; + let __v_3644: G = if unconstrained { Bytes2::xor(&__v_3608, &__v_3632) } else { bytes2_xor_value(__v_3608, __v_3632, record) }; + let __v_3645: G = if unconstrained { Bytes2::xor(&__v_3609, &__v_3633) } else { bytes2_xor_value(__v_3609, __v_3633, record) }; + let __u32_sum: u128 = u128::from(((__v_3612.as_canonical_u64() << 0) | (__v_3613.as_canonical_u64() << 8) | (__v_3614.as_canonical_u64() << 16) | (__v_3615.as_canonical_u64() << 24))) + u128::from(((__v_3643.as_canonical_u64() << 0) | (__v_3644.as_canonical_u64() << 8) | (__v_3645.as_canonical_u64() << 16) | (__v_3642.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3646: G = G::from_u8(__u32_bytes[0]); + let __v_3647: G = G::from_u8(__u32_bytes[1]); + let __v_3648: G = G::from_u8(__u32_bytes[2]); + let __v_3649: G = G::from_u8(__u32_bytes[3]); + let __v_3650: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3646; let __vj = __v_3647; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3648; let __vj = __v_3649; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3651: G = (__v_3650 * __v_3650); + if (__v_3651 != __v_3650) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3651.as_canonical_u64(), rhs: __v_3650.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3626, &__v_3646) } else { bytes2_xor_split7_value(__v_3626, __v_3646, record) }; + let __v_3652: G = __b2_out.0; + let __v_3653: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3627, &__v_3647) } else { bytes2_xor_split7_value(__v_3627, __v_3647, record) }; + let __v_3654: G = __b2_out.0; + let __v_3655: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3628, &__v_3648) } else { bytes2_xor_split7_value(__v_3628, __v_3648, record) }; + let __v_3656: G = __b2_out.0; + let __v_3657: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3629, &__v_3649) } else { bytes2_xor_split7_value(__v_3629, __v_3649, record) }; + let __v_3658: G = __b2_out.0; + let __v_3659: G = __b2_out.1; + let __v_3660: G = (__v_3652 + __v_3655); + let __v_3661: G = (__v_3654 + __v_3657); + let __v_3662: G = (__v_3656 + __v_3659); + let __v_3663: G = (__v_3658 + __v_3653); + let __u32_sum: u128 = u128::from(((__v_3426.as_canonical_u64() << 0) | (__v_3427.as_canonical_u64() << 8) | (__v_3428.as_canonical_u64() << 16) | (__v_3429.as_canonical_u64() << 24))) + u128::from(((__v_3524.as_canonical_u64() << 0) | (__v_3525.as_canonical_u64() << 8) | (__v_3526.as_canonical_u64() << 16) | (__v_3527.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3664: G = G::from_u8(__u32_bytes[0]); + let __v_3665: G = G::from_u8(__u32_bytes[1]); + let __v_3666: G = G::from_u8(__u32_bytes[2]); + let __v_3667: G = G::from_u8(__u32_bytes[3]); + let __v_3668: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3664; let __vj = __v_3665; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3666; let __vj = __v_3667; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3669: G = G::from_u64(1); + let __v_3670: G = (__v_3668 - __v_3669); + let __v_3671: G = G::from_u64(2); + let __v_3672: G = (__v_3668 - __v_3671); + let __v_3673: G = (__v_3670 * __v_3672); + let __v_3674: G = (__v_3668 * __v_3673); + let __v_3675: G = G::from_u64(0); + if (__v_3674 != __v_3675) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3674.as_canonical_u64(), rhs: __v_3675.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3676: G = if unconstrained { Bytes2::xor(&__v_3643, &__v_3664) } else { bytes2_xor_value(__v_3643, __v_3664, record) }; + let __v_3677: G = if unconstrained { Bytes2::xor(&__v_3644, &__v_3665) } else { bytes2_xor_value(__v_3644, __v_3665, record) }; + let __v_3678: G = if unconstrained { Bytes2::xor(&__v_3645, &__v_3666) } else { bytes2_xor_value(__v_3645, __v_3666, record) }; + let __v_3679: G = if unconstrained { Bytes2::xor(&__v_3642, &__v_3667) } else { bytes2_xor_value(__v_3642, __v_3667, record) }; + let __u32_sum: u128 = u128::from(((__v_3578.as_canonical_u64() << 0) | (__v_3579.as_canonical_u64() << 8) | (__v_3580.as_canonical_u64() << 16) | (__v_3581.as_canonical_u64() << 24))) + u128::from(((__v_3678.as_canonical_u64() << 0) | (__v_3679.as_canonical_u64() << 8) | (__v_3676.as_canonical_u64() << 16) | (__v_3677.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3680: G = G::from_u8(__u32_bytes[0]); + let __v_3681: G = G::from_u8(__u32_bytes[1]); + let __v_3682: G = G::from_u8(__u32_bytes[2]); + let __v_3683: G = G::from_u8(__u32_bytes[3]); + let __v_3684: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3680; let __vj = __v_3681; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3682; let __vj = __v_3683; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3685: G = (__v_3684 * __v_3684); + if (__v_3685 != __v_3684) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3685.as_canonical_u64(), rhs: __v_3684.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3524, &__v_3680) } else { bytes2_xor_split4_value(__v_3524, __v_3680, record) }; + let __v_3686: G = __b2_out.0; + let __v_3687: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3525, &__v_3681) } else { bytes2_xor_split4_value(__v_3525, __v_3681, record) }; + let __v_3688: G = __b2_out.0; + let __v_3689: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3526, &__v_3682) } else { bytes2_xor_split4_value(__v_3526, __v_3682, record) }; + let __v_3690: G = __b2_out.0; + let __v_3691: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3527, &__v_3683) } else { bytes2_xor_split4_value(__v_3527, __v_3683, record) }; + let __v_3692: G = __b2_out.0; + let __v_3693: G = __b2_out.1; + let __v_3694: G = (__v_3688 + __v_3691); + let __v_3695: G = (__v_3690 + __v_3693); + let __v_3696: G = (__v_3692 + __v_3687); + let __v_3697: G = (__v_3686 + __v_3689); + let __u32_sum: u128 = u128::from(((__v_3664.as_canonical_u64() << 0) | (__v_3665.as_canonical_u64() << 8) | (__v_3666.as_canonical_u64() << 16) | (__v_3667.as_canonical_u64() << 24))) + u128::from(((__v_3694.as_canonical_u64() << 0) | (__v_3695.as_canonical_u64() << 8) | (__v_3696.as_canonical_u64() << 16) | (__v_3697.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3698: G = G::from_u8(__u32_bytes[0]); + let __v_3699: G = G::from_u8(__u32_bytes[1]); + let __v_3700: G = G::from_u8(__u32_bytes[2]); + let __v_3701: G = G::from_u8(__u32_bytes[3]); + let __v_3702: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3698; let __vj = __v_3699; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3700; let __vj = __v_3701; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3703: G = G::from_u64(1); + let __v_3704: G = (__v_3702 - __v_3703); + let __v_3705: G = G::from_u64(2); + let __v_3706: G = (__v_3702 - __v_3705); + let __v_3707: G = (__v_3704 * __v_3706); + let __v_3708: G = (__v_3702 * __v_3707); + let __v_3709: G = G::from_u64(0); + if (__v_3708 != __v_3709) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3708.as_canonical_u64(), rhs: __v_3709.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3710: G = if unconstrained { Bytes2::xor(&__v_3678, &__v_3698) } else { bytes2_xor_value(__v_3678, __v_3698, record) }; + let __v_3711: G = if unconstrained { Bytes2::xor(&__v_3679, &__v_3699) } else { bytes2_xor_value(__v_3679, __v_3699, record) }; + let __v_3712: G = if unconstrained { Bytes2::xor(&__v_3676, &__v_3700) } else { bytes2_xor_value(__v_3676, __v_3700, record) }; + let __v_3713: G = if unconstrained { Bytes2::xor(&__v_3677, &__v_3701) } else { bytes2_xor_value(__v_3677, __v_3701, record) }; + let __u32_sum: u128 = u128::from(((__v_3680.as_canonical_u64() << 0) | (__v_3681.as_canonical_u64() << 8) | (__v_3682.as_canonical_u64() << 16) | (__v_3683.as_canonical_u64() << 24))) + u128::from(((__v_3711.as_canonical_u64() << 0) | (__v_3712.as_canonical_u64() << 8) | (__v_3713.as_canonical_u64() << 16) | (__v_3710.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3714: G = G::from_u8(__u32_bytes[0]); + let __v_3715: G = G::from_u8(__u32_bytes[1]); + let __v_3716: G = G::from_u8(__u32_bytes[2]); + let __v_3717: G = G::from_u8(__u32_bytes[3]); + let __v_3718: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3714; let __vj = __v_3715; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3716; let __vj = __v_3717; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3719: G = (__v_3718 * __v_3718); + if (__v_3719 != __v_3718) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3719.as_canonical_u64(), rhs: __v_3718.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3694, &__v_3714) } else { bytes2_xor_split7_value(__v_3694, __v_3714, record) }; + let __v_3720: G = __b2_out.0; + let __v_3721: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3695, &__v_3715) } else { bytes2_xor_split7_value(__v_3695, __v_3715, record) }; + let __v_3722: G = __b2_out.0; + let __v_3723: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3696, &__v_3716) } else { bytes2_xor_split7_value(__v_3696, __v_3716, record) }; + let __v_3724: G = __b2_out.0; + let __v_3725: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3697, &__v_3717) } else { bytes2_xor_split7_value(__v_3697, __v_3717, record) }; + let __v_3726: G = __b2_out.0; + let __v_3727: G = __b2_out.1; + let __v_3728: G = (__v_3720 + __v_3723); + let __v_3729: G = (__v_3722 + __v_3725); + let __v_3730: G = (__v_3724 + __v_3727); + let __v_3731: G = (__v_3726 + __v_3721); + let __u32_sum: u128 = u128::from(((__v_3494.as_canonical_u64() << 0) | (__v_3495.as_canonical_u64() << 8) | (__v_3496.as_canonical_u64() << 16) | (__v_3497.as_canonical_u64() << 24))) + u128::from(((__v_3592.as_canonical_u64() << 0) | (__v_3593.as_canonical_u64() << 8) | (__v_3594.as_canonical_u64() << 16) | (__v_3595.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3732: G = G::from_u8(__u32_bytes[0]); + let __v_3733: G = G::from_u8(__u32_bytes[1]); + let __v_3734: G = G::from_u8(__u32_bytes[2]); + let __v_3735: G = G::from_u8(__u32_bytes[3]); + let __v_3736: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3732; let __vj = __v_3733; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3734; let __vj = __v_3735; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3737: G = G::from_u64(1); + let __v_3738: G = (__v_3736 - __v_3737); + let __v_3739: G = G::from_u64(2); + let __v_3740: G = (__v_3736 - __v_3739); + let __v_3741: G = (__v_3738 * __v_3740); + let __v_3742: G = (__v_3736 * __v_3741); + let __v_3743: G = G::from_u64(0); + if (__v_3742 != __v_3743) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3742.as_canonical_u64(), rhs: __v_3743.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3744: G = if unconstrained { Bytes2::xor(&__v_3439, &__v_3732) } else { bytes2_xor_value(__v_3439, __v_3732, record) }; + let __v_3745: G = if unconstrained { Bytes2::xor(&__v_3440, &__v_3733) } else { bytes2_xor_value(__v_3440, __v_3733, record) }; + let __v_3746: G = if unconstrained { Bytes2::xor(&__v_3441, &__v_3734) } else { bytes2_xor_value(__v_3441, __v_3734, record) }; + let __v_3747: G = if unconstrained { Bytes2::xor(&__v_3438, &__v_3735) } else { bytes2_xor_value(__v_3438, __v_3735, record) }; + let __u32_sum: u128 = u128::from(((__v_3646.as_canonical_u64() << 0) | (__v_3647.as_canonical_u64() << 8) | (__v_3648.as_canonical_u64() << 16) | (__v_3649.as_canonical_u64() << 24))) + u128::from(((__v_3746.as_canonical_u64() << 0) | (__v_3747.as_canonical_u64() << 8) | (__v_3744.as_canonical_u64() << 16) | (__v_3745.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3748: G = G::from_u8(__u32_bytes[0]); + let __v_3749: G = G::from_u8(__u32_bytes[1]); + let __v_3750: G = G::from_u8(__u32_bytes[2]); + let __v_3751: G = G::from_u8(__u32_bytes[3]); + let __v_3752: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3748; let __vj = __v_3749; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3750; let __vj = __v_3751; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3753: G = (__v_3752 * __v_3752); + if (__v_3753 != __v_3752) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3753.as_canonical_u64(), rhs: __v_3752.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3592, &__v_3748) } else { bytes2_xor_split4_value(__v_3592, __v_3748, record) }; + let __v_3754: G = __b2_out.0; + let __v_3755: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3593, &__v_3749) } else { bytes2_xor_split4_value(__v_3593, __v_3749, record) }; + let __v_3756: G = __b2_out.0; + let __v_3757: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3594, &__v_3750) } else { bytes2_xor_split4_value(__v_3594, __v_3750, record) }; + let __v_3758: G = __b2_out.0; + let __v_3759: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3595, &__v_3751) } else { bytes2_xor_split4_value(__v_3595, __v_3751, record) }; + let __v_3760: G = __b2_out.0; + let __v_3761: G = __b2_out.1; + let __v_3762: G = (__v_3756 + __v_3759); + let __v_3763: G = (__v_3758 + __v_3761); + let __v_3764: G = (__v_3760 + __v_3755); + let __v_3765: G = (__v_3754 + __v_3757); + let __u32_sum: u128 = u128::from(((__v_3732.as_canonical_u64() << 0) | (__v_3733.as_canonical_u64() << 8) | (__v_3734.as_canonical_u64() << 16) | (__v_3735.as_canonical_u64() << 24))) + u128::from(((__v_3762.as_canonical_u64() << 0) | (__v_3763.as_canonical_u64() << 8) | (__v_3764.as_canonical_u64() << 16) | (__v_3765.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3766: G = G::from_u8(__u32_bytes[0]); + let __v_3767: G = G::from_u8(__u32_bytes[1]); + let __v_3768: G = G::from_u8(__u32_bytes[2]); + let __v_3769: G = G::from_u8(__u32_bytes[3]); + let __v_3770: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3766; let __vj = __v_3767; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3768; let __vj = __v_3769; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3771: G = G::from_u64(1); + let __v_3772: G = (__v_3770 - __v_3771); + let __v_3773: G = G::from_u64(2); + let __v_3774: G = (__v_3770 - __v_3773); + let __v_3775: G = (__v_3772 * __v_3774); + let __v_3776: G = (__v_3770 * __v_3775); + let __v_3777: G = G::from_u64(0); + if (__v_3776 != __v_3777) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3776.as_canonical_u64(), rhs: __v_3777.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3778: G = if unconstrained { Bytes2::xor(&__v_3746, &__v_3766) } else { bytes2_xor_value(__v_3746, __v_3766, record) }; + let __v_3779: G = if unconstrained { Bytes2::xor(&__v_3747, &__v_3767) } else { bytes2_xor_value(__v_3747, __v_3767, record) }; + let __v_3780: G = if unconstrained { Bytes2::xor(&__v_3744, &__v_3768) } else { bytes2_xor_value(__v_3744, __v_3768, record) }; + let __v_3781: G = if unconstrained { Bytes2::xor(&__v_3745, &__v_3769) } else { bytes2_xor_value(__v_3745, __v_3769, record) }; + let __u32_sum: u128 = u128::from(((__v_3748.as_canonical_u64() << 0) | (__v_3749.as_canonical_u64() << 8) | (__v_3750.as_canonical_u64() << 16) | (__v_3751.as_canonical_u64() << 24))) + u128::from(((__v_3779.as_canonical_u64() << 0) | (__v_3780.as_canonical_u64() << 8) | (__v_3781.as_canonical_u64() << 16) | (__v_3778.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3782: G = G::from_u8(__u32_bytes[0]); + let __v_3783: G = G::from_u8(__u32_bytes[1]); + let __v_3784: G = G::from_u8(__u32_bytes[2]); + let __v_3785: G = G::from_u8(__u32_bytes[3]); + let __v_3786: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3782; let __vj = __v_3783; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3784; let __vj = __v_3785; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3787: G = (__v_3786 * __v_3786); + if (__v_3787 != __v_3786) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3787.as_canonical_u64(), rhs: __v_3786.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3762, &__v_3782) } else { bytes2_xor_split7_value(__v_3762, __v_3782, record) }; + let __v_3788: G = __b2_out.0; + let __v_3789: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3763, &__v_3783) } else { bytes2_xor_split7_value(__v_3763, __v_3783, record) }; + let __v_3790: G = __b2_out.0; + let __v_3791: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3764, &__v_3784) } else { bytes2_xor_split7_value(__v_3764, __v_3784, record) }; + let __v_3792: G = __b2_out.0; + let __v_3793: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3765, &__v_3785) } else { bytes2_xor_split7_value(__v_3765, __v_3785, record) }; + let __v_3794: G = __b2_out.0; + let __v_3795: G = __b2_out.1; + let __v_3796: G = (__v_3788 + __v_3791); + let __v_3797: G = (__v_3790 + __v_3793); + let __v_3798: G = (__v_3792 + __v_3795); + let __v_3799: G = (__v_3794 + __v_3789); + let __u32_sum: u128 = u128::from(((__v_3562.as_canonical_u64() << 0) | (__v_3563.as_canonical_u64() << 8) | (__v_3564.as_canonical_u64() << 16) | (__v_3565.as_canonical_u64() << 24))) + u128::from(((__v_3660.as_canonical_u64() << 0) | (__v_3661.as_canonical_u64() << 8) | (__v_3662.as_canonical_u64() << 16) | (__v_3663.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3800: G = G::from_u8(__u32_bytes[0]); + let __v_3801: G = G::from_u8(__u32_bytes[1]); + let __v_3802: G = G::from_u8(__u32_bytes[2]); + let __v_3803: G = G::from_u8(__u32_bytes[3]); + let __v_3804: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3800; let __vj = __v_3801; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3802; let __vj = __v_3803; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3805: G = G::from_u64(1); + let __v_3806: G = (__v_3804 - __v_3805); + let __v_3807: G = G::from_u64(2); + let __v_3808: G = (__v_3804 - __v_3807); + let __v_3809: G = (__v_3806 * __v_3808); + let __v_3810: G = (__v_3804 * __v_3809); + let __v_3811: G = G::from_u64(0); + if (__v_3810 != __v_3811) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3810.as_canonical_u64(), rhs: __v_3811.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3812: G = if unconstrained { Bytes2::xor(&__v_3507, &__v_3800) } else { bytes2_xor_value(__v_3507, __v_3800, record) }; + let __v_3813: G = if unconstrained { Bytes2::xor(&__v_3508, &__v_3801) } else { bytes2_xor_value(__v_3508, __v_3801, record) }; + let __v_3814: G = if unconstrained { Bytes2::xor(&__v_3509, &__v_3802) } else { bytes2_xor_value(__v_3509, __v_3802, record) }; + let __v_3815: G = if unconstrained { Bytes2::xor(&__v_3506, &__v_3803) } else { bytes2_xor_value(__v_3506, __v_3803, record) }; + let __u32_sum: u128 = u128::from(((__v_3442.as_canonical_u64() << 0) | (__v_3443.as_canonical_u64() << 8) | (__v_3444.as_canonical_u64() << 16) | (__v_3445.as_canonical_u64() << 24))) + u128::from(((__v_3814.as_canonical_u64() << 0) | (__v_3815.as_canonical_u64() << 8) | (__v_3812.as_canonical_u64() << 16) | (__v_3813.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3816: G = G::from_u8(__u32_bytes[0]); + let __v_3817: G = G::from_u8(__u32_bytes[1]); + let __v_3818: G = G::from_u8(__u32_bytes[2]); + let __v_3819: G = G::from_u8(__u32_bytes[3]); + let __v_3820: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3816; let __vj = __v_3817; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3818; let __vj = __v_3819; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3821: G = (__v_3820 * __v_3820); + if (__v_3821 != __v_3820) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3821.as_canonical_u64(), rhs: __v_3820.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3660, &__v_3816) } else { bytes2_xor_split4_value(__v_3660, __v_3816, record) }; + let __v_3822: G = __b2_out.0; + let __v_3823: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3661, &__v_3817) } else { bytes2_xor_split4_value(__v_3661, __v_3817, record) }; + let __v_3824: G = __b2_out.0; + let __v_3825: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3662, &__v_3818) } else { bytes2_xor_split4_value(__v_3662, __v_3818, record) }; + let __v_3826: G = __b2_out.0; + let __v_3827: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3663, &__v_3819) } else { bytes2_xor_split4_value(__v_3663, __v_3819, record) }; + let __v_3828: G = __b2_out.0; + let __v_3829: G = __b2_out.1; + let __v_3830: G = (__v_3824 + __v_3827); + let __v_3831: G = (__v_3826 + __v_3829); + let __v_3832: G = (__v_3828 + __v_3823); + let __v_3833: G = (__v_3822 + __v_3825); + let __u32_sum: u128 = u128::from(((__v_3800.as_canonical_u64() << 0) | (__v_3801.as_canonical_u64() << 8) | (__v_3802.as_canonical_u64() << 16) | (__v_3803.as_canonical_u64() << 24))) + u128::from(((__v_3830.as_canonical_u64() << 0) | (__v_3831.as_canonical_u64() << 8) | (__v_3832.as_canonical_u64() << 16) | (__v_3833.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3834: G = G::from_u8(__u32_bytes[0]); + let __v_3835: G = G::from_u8(__u32_bytes[1]); + let __v_3836: G = G::from_u8(__u32_bytes[2]); + let __v_3837: G = G::from_u8(__u32_bytes[3]); + let __v_3838: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3834; let __vj = __v_3835; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3836; let __vj = __v_3837; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3839: G = G::from_u64(1); + let __v_3840: G = (__v_3838 - __v_3839); + let __v_3841: G = G::from_u64(2); + let __v_3842: G = (__v_3838 - __v_3841); + let __v_3843: G = (__v_3840 * __v_3842); + let __v_3844: G = (__v_3838 * __v_3843); + let __v_3845: G = G::from_u64(0); + if (__v_3844 != __v_3845) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3844.as_canonical_u64(), rhs: __v_3845.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3846: G = if unconstrained { Bytes2::xor(&__v_3814, &__v_3834) } else { bytes2_xor_value(__v_3814, __v_3834, record) }; + let __v_3847: G = if unconstrained { Bytes2::xor(&__v_3815, &__v_3835) } else { bytes2_xor_value(__v_3815, __v_3835, record) }; + let __v_3848: G = if unconstrained { Bytes2::xor(&__v_3812, &__v_3836) } else { bytes2_xor_value(__v_3812, __v_3836, record) }; + let __v_3849: G = if unconstrained { Bytes2::xor(&__v_3813, &__v_3837) } else { bytes2_xor_value(__v_3813, __v_3837, record) }; + let __u32_sum: u128 = u128::from(((__v_3816.as_canonical_u64() << 0) | (__v_3817.as_canonical_u64() << 8) | (__v_3818.as_canonical_u64() << 16) | (__v_3819.as_canonical_u64() << 24))) + u128::from(((__v_3847.as_canonical_u64() << 0) | (__v_3848.as_canonical_u64() << 8) | (__v_3849.as_canonical_u64() << 16) | (__v_3846.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3850: G = G::from_u8(__u32_bytes[0]); + let __v_3851: G = G::from_u8(__u32_bytes[1]); + let __v_3852: G = G::from_u8(__u32_bytes[2]); + let __v_3853: G = G::from_u8(__u32_bytes[3]); + let __v_3854: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3850; let __vj = __v_3851; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3852; let __vj = __v_3853; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3855: G = (__v_3854 * __v_3854); + if (__v_3855 != __v_3854) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3855.as_canonical_u64(), rhs: __v_3854.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3830, &__v_3850) } else { bytes2_xor_split7_value(__v_3830, __v_3850, record) }; + let __v_3856: G = __b2_out.0; + let __v_3857: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3831, &__v_3851) } else { bytes2_xor_split7_value(__v_3831, __v_3851, record) }; + let __v_3858: G = __b2_out.0; + let __v_3859: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3832, &__v_3852) } else { bytes2_xor_split7_value(__v_3832, __v_3852, record) }; + let __v_3860: G = __b2_out.0; + let __v_3861: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3833, &__v_3853) } else { bytes2_xor_split7_value(__v_3833, __v_3853, record) }; + let __v_3862: G = __b2_out.0; + let __v_3863: G = __b2_out.1; + let __v_3864: G = (__v_3856 + __v_3859); + let __v_3865: G = (__v_3858 + __v_3861); + let __v_3866: G = (__v_3860 + __v_3863); + let __v_3867: G = (__v_3862 + __v_3857); + let __u32_sum: u128 = u128::from(((__v_3630.as_canonical_u64() << 0) | (__v_3631.as_canonical_u64() << 8) | (__v_3632.as_canonical_u64() << 16) | (__v_3633.as_canonical_u64() << 24))) + u128::from(((__v_3456.as_canonical_u64() << 0) | (__v_3457.as_canonical_u64() << 8) | (__v_3458.as_canonical_u64() << 16) | (__v_3459.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3868: G = G::from_u8(__u32_bytes[0]); + let __v_3869: G = G::from_u8(__u32_bytes[1]); + let __v_3870: G = G::from_u8(__u32_bytes[2]); + let __v_3871: G = G::from_u8(__u32_bytes[3]); + let __v_3872: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3868; let __vj = __v_3869; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3870; let __vj = __v_3871; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3873: G = G::from_u64(1); + let __v_3874: G = (__v_3872 - __v_3873); + let __v_3875: G = G::from_u64(2); + let __v_3876: G = (__v_3872 - __v_3875); + let __v_3877: G = (__v_3874 * __v_3876); + let __v_3878: G = (__v_3872 * __v_3877); + let __v_3879: G = G::from_u64(0); + if (__v_3878 != __v_3879) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3878.as_canonical_u64(), rhs: __v_3879.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3880: G = if unconstrained { Bytes2::xor(&__v_3575, &__v_3868) } else { bytes2_xor_value(__v_3575, __v_3868, record) }; + let __v_3881: G = if unconstrained { Bytes2::xor(&__v_3576, &__v_3869) } else { bytes2_xor_value(__v_3576, __v_3869, record) }; + let __v_3882: G = if unconstrained { Bytes2::xor(&__v_3577, &__v_3870) } else { bytes2_xor_value(__v_3577, __v_3870, record) }; + let __v_3883: G = if unconstrained { Bytes2::xor(&__v_3574, &__v_3871) } else { bytes2_xor_value(__v_3574, __v_3871, record) }; + let __u32_sum: u128 = u128::from(((__v_3510.as_canonical_u64() << 0) | (__v_3511.as_canonical_u64() << 8) | (__v_3512.as_canonical_u64() << 16) | (__v_3513.as_canonical_u64() << 24))) + u128::from(((__v_3882.as_canonical_u64() << 0) | (__v_3883.as_canonical_u64() << 8) | (__v_3880.as_canonical_u64() << 16) | (__v_3881.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3884: G = G::from_u8(__u32_bytes[0]); + let __v_3885: G = G::from_u8(__u32_bytes[1]); + let __v_3886: G = G::from_u8(__u32_bytes[2]); + let __v_3887: G = G::from_u8(__u32_bytes[3]); + let __v_3888: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3884; let __vj = __v_3885; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3886; let __vj = __v_3887; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3889: G = (__v_3888 * __v_3888); + if (__v_3889 != __v_3888) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3889.as_canonical_u64(), rhs: __v_3888.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3456, &__v_3884) } else { bytes2_xor_split4_value(__v_3456, __v_3884, record) }; + let __v_3890: G = __b2_out.0; + let __v_3891: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3457, &__v_3885) } else { bytes2_xor_split4_value(__v_3457, __v_3885, record) }; + let __v_3892: G = __b2_out.0; + let __v_3893: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3458, &__v_3886) } else { bytes2_xor_split4_value(__v_3458, __v_3886, record) }; + let __v_3894: G = __b2_out.0; + let __v_3895: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3459, &__v_3887) } else { bytes2_xor_split4_value(__v_3459, __v_3887, record) }; + let __v_3896: G = __b2_out.0; + let __v_3897: G = __b2_out.1; + let __v_3898: G = (__v_3892 + __v_3895); + let __v_3899: G = (__v_3894 + __v_3897); + let __v_3900: G = (__v_3896 + __v_3891); + let __v_3901: G = (__v_3890 + __v_3893); + let __u32_sum: u128 = u128::from(((__v_3868.as_canonical_u64() << 0) | (__v_3869.as_canonical_u64() << 8) | (__v_3870.as_canonical_u64() << 16) | (__v_3871.as_canonical_u64() << 24))) + u128::from(((__v_3898.as_canonical_u64() << 0) | (__v_3899.as_canonical_u64() << 8) | (__v_3900.as_canonical_u64() << 16) | (__v_3901.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3902: G = G::from_u8(__u32_bytes[0]); + let __v_3903: G = G::from_u8(__u32_bytes[1]); + let __v_3904: G = G::from_u8(__u32_bytes[2]); + let __v_3905: G = G::from_u8(__u32_bytes[3]); + let __v_3906: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3902; let __vj = __v_3903; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3904; let __vj = __v_3905; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3907: G = G::from_u64(1); + let __v_3908: G = (__v_3906 - __v_3907); + let __v_3909: G = G::from_u64(2); + let __v_3910: G = (__v_3906 - __v_3909); + let __v_3911: G = (__v_3908 * __v_3910); + let __v_3912: G = (__v_3906 * __v_3911); + let __v_3913: G = G::from_u64(0); + if (__v_3912 != __v_3913) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3912.as_canonical_u64(), rhs: __v_3913.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3914: G = if unconstrained { Bytes2::xor(&__v_3882, &__v_3902) } else { bytes2_xor_value(__v_3882, __v_3902, record) }; + let __v_3915: G = if unconstrained { Bytes2::xor(&__v_3883, &__v_3903) } else { bytes2_xor_value(__v_3883, __v_3903, record) }; + let __v_3916: G = if unconstrained { Bytes2::xor(&__v_3880, &__v_3904) } else { bytes2_xor_value(__v_3880, __v_3904, record) }; + let __v_3917: G = if unconstrained { Bytes2::xor(&__v_3881, &__v_3905) } else { bytes2_xor_value(__v_3881, __v_3905, record) }; + let __u32_sum: u128 = u128::from(((__v_3884.as_canonical_u64() << 0) | (__v_3885.as_canonical_u64() << 8) | (__v_3886.as_canonical_u64() << 16) | (__v_3887.as_canonical_u64() << 24))) + u128::from(((__v_3915.as_canonical_u64() << 0) | (__v_3916.as_canonical_u64() << 8) | (__v_3917.as_canonical_u64() << 16) | (__v_3914.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3918: G = G::from_u8(__u32_bytes[0]); + let __v_3919: G = G::from_u8(__u32_bytes[1]); + let __v_3920: G = G::from_u8(__u32_bytes[2]); + let __v_3921: G = G::from_u8(__u32_bytes[3]); + let __v_3922: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3918; let __vj = __v_3919; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3920; let __vj = __v_3921; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3923: G = (__v_3922 * __v_3922); + if (__v_3923 != __v_3922) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3923.as_canonical_u64(), rhs: __v_3922.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3898, &__v_3918) } else { bytes2_xor_split7_value(__v_3898, __v_3918, record) }; + let __v_3924: G = __b2_out.0; + let __v_3925: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3899, &__v_3919) } else { bytes2_xor_split7_value(__v_3899, __v_3919, record) }; + let __v_3926: G = __b2_out.0; + let __v_3927: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3900, &__v_3920) } else { bytes2_xor_split7_value(__v_3900, __v_3920, record) }; + let __v_3928: G = __b2_out.0; + let __v_3929: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3901, &__v_3921) } else { bytes2_xor_split7_value(__v_3901, __v_3921, record) }; + let __v_3930: G = __b2_out.0; + let __v_3931: G = __b2_out.1; + let __v_3932: G = (__v_3924 + __v_3927); + let __v_3933: G = (__v_3926 + __v_3929); + let __v_3934: G = (__v_3928 + __v_3931); + let __v_3935: G = (__v_3930 + __v_3925); + let __v_3936: G = if unconstrained { Bytes2::xor(&__v_3698, &__v_3850) } else { bytes2_xor_value(__v_3698, __v_3850, record) }; + let __v_3937: G = if unconstrained { Bytes2::xor(&__v_3699, &__v_3851) } else { bytes2_xor_value(__v_3699, __v_3851, record) }; + let __v_3938: G = if unconstrained { Bytes2::xor(&__v_3700, &__v_3852) } else { bytes2_xor_value(__v_3700, __v_3852, record) }; + let __v_3939: G = if unconstrained { Bytes2::xor(&__v_3701, &__v_3853) } else { bytes2_xor_value(__v_3701, __v_3853, record) }; + let __v_3940: G = if unconstrained { Bytes2::xor(&__v_3766, &__v_3918) } else { bytes2_xor_value(__v_3766, __v_3918, record) }; + let __v_3941: G = if unconstrained { Bytes2::xor(&__v_3767, &__v_3919) } else { bytes2_xor_value(__v_3767, __v_3919, record) }; + let __v_3942: G = if unconstrained { Bytes2::xor(&__v_3768, &__v_3920) } else { bytes2_xor_value(__v_3768, __v_3920, record) }; + let __v_3943: G = if unconstrained { Bytes2::xor(&__v_3769, &__v_3921) } else { bytes2_xor_value(__v_3769, __v_3921, record) }; + let __v_3944: G = if unconstrained { Bytes2::xor(&__v_3834, &__v_3714) } else { bytes2_xor_value(__v_3834, __v_3714, record) }; + let __v_3945: G = if unconstrained { Bytes2::xor(&__v_3835, &__v_3715) } else { bytes2_xor_value(__v_3835, __v_3715, record) }; + let __v_3946: G = if unconstrained { Bytes2::xor(&__v_3836, &__v_3716) } else { bytes2_xor_value(__v_3836, __v_3716, record) }; + let __v_3947: G = if unconstrained { Bytes2::xor(&__v_3837, &__v_3717) } else { bytes2_xor_value(__v_3837, __v_3717, record) }; + let __v_3948: G = if unconstrained { Bytes2::xor(&__v_3902, &__v_3782) } else { bytes2_xor_value(__v_3902, __v_3782, record) }; + let __v_3949: G = if unconstrained { Bytes2::xor(&__v_3903, &__v_3783) } else { bytes2_xor_value(__v_3903, __v_3783, record) }; + let __v_3950: G = if unconstrained { Bytes2::xor(&__v_3904, &__v_3784) } else { bytes2_xor_value(__v_3904, __v_3784, record) }; + let __v_3951: G = if unconstrained { Bytes2::xor(&__v_3905, &__v_3785) } else { bytes2_xor_value(__v_3905, __v_3785, record) }; + let __v_3952: G = if unconstrained { Bytes2::xor(&__v_3932, &__v_3779) } else { bytes2_xor_value(__v_3932, __v_3779, record) }; + let __v_3953: G = if unconstrained { Bytes2::xor(&__v_3933, &__v_3780) } else { bytes2_xor_value(__v_3933, __v_3780, record) }; + let __v_3954: G = if unconstrained { Bytes2::xor(&__v_3934, &__v_3781) } else { bytes2_xor_value(__v_3934, __v_3781, record) }; + let __v_3955: G = if unconstrained { Bytes2::xor(&__v_3935, &__v_3778) } else { bytes2_xor_value(__v_3935, __v_3778, record) }; + let __v_3956: G = if unconstrained { Bytes2::xor(&__v_3728, &__v_3847) } else { bytes2_xor_value(__v_3728, __v_3847, record) }; + let __v_3957: G = if unconstrained { Bytes2::xor(&__v_3729, &__v_3848) } else { bytes2_xor_value(__v_3729, __v_3848, record) }; + let __v_3958: G = if unconstrained { Bytes2::xor(&__v_3730, &__v_3849) } else { bytes2_xor_value(__v_3730, __v_3849, record) }; + let __v_3959: G = if unconstrained { Bytes2::xor(&__v_3731, &__v_3846) } else { bytes2_xor_value(__v_3731, __v_3846, record) }; + let __v_3960: G = if unconstrained { Bytes2::xor(&__v_3796, &__v_3915) } else { bytes2_xor_value(__v_3796, __v_3915, record) }; + let __v_3961: G = if unconstrained { Bytes2::xor(&__v_3797, &__v_3916) } else { bytes2_xor_value(__v_3797, __v_3916, record) }; + let __v_3962: G = if unconstrained { Bytes2::xor(&__v_3798, &__v_3917) } else { bytes2_xor_value(__v_3798, __v_3917, record) }; + let __v_3963: G = if unconstrained { Bytes2::xor(&__v_3799, &__v_3914) } else { bytes2_xor_value(__v_3799, __v_3914, record) }; + let __v_3964: G = if unconstrained { Bytes2::xor(&__v_3864, &__v_3711) } else { bytes2_xor_value(__v_3864, __v_3711, record) }; + let __v_3965: G = if unconstrained { Bytes2::xor(&__v_3865, &__v_3712) } else { bytes2_xor_value(__v_3865, __v_3712, record) }; + let __v_3966: G = if unconstrained { Bytes2::xor(&__v_3866, &__v_3713) } else { bytes2_xor_value(__v_3866, __v_3713, record) }; + let __v_3967: G = if unconstrained { Bytes2::xor(&__v_3867, &__v_3710) } else { bytes2_xor_value(__v_3867, __v_3710, record) }; + let __ret: [G; OUT_29] = [__v_3936, __v_3937, __v_3938, __v_3939, __v_3940, __v_3941, __v_3942, __v_3943, __v_3944, __v_3945, __v_3946, __v_3947, __v_3948, __v_3949, __v_3950, __v_3951, __v_3952, __v_3953, __v_3954, __v_3955, __v_3956, __v_3957, __v_3958, __v_3959, __v_3960, __v_3961, __v_3962, __v_3963, __v_3964, __v_3965, __v_3966, __v_3967]; record.function_queries[29].insert(&inp[..], &__ret[..], G::from_bool(!unconstrained)); return Ok(__ret); }) diff --git a/crates/ixvm-codegen/src/aiur_multi_stark.rs b/crates/ixvm-codegen/src/aiur_multi_stark.rs index a5177383..629bab20 100644 --- a/crates/ixvm-codegen/src/aiur_multi_stark.rs +++ b/crates/ixvm-codegen/src/aiur_multi_stark.rs @@ -5970,942 +5970,5863 @@ fn aiur_fn_70( let __v_125: G = G::from_u64(0); let __v_126: G = G::from_u64(0); let __v_127: G = G::from_u64(0); - let __r_arr: [G; OUT_69] = { let __args: [G; IN_69] = [__v_0, __v_1, __v_2, __v_3, __v_4, __v_5, __v_6, __v_7, __v_8, __v_9, __v_10, __v_11, __v_12, __v_13, __v_14, __v_15, __v_16, __v_17, __v_18, __v_19, __v_20, __v_21, __v_22, __v_23, __v_24, __v_25, __v_26, __v_27, __v_28, __v_29, __v_30, __v_31, __v_106, __v_107, __v_108, __v_109, __v_110, __v_111, __v_112, __v_113, __v_114, __v_115, __v_116, __v_117, __v_118, __v_119, __v_120, __v_121, __v_96, __v_97, __v_98, __v_99, __v_100, __v_101, __v_102, __v_103, __v_104, __v_122, __v_123, __v_124, __v_105, __v_125, __v_126, __v_127, __v_32, __v_33, __v_34, __v_35, __v_36, __v_37, __v_38, __v_39, __v_40, __v_41, __v_42, __v_43, __v_44, __v_45, __v_46, __v_47, __v_48, __v_49, __v_50, __v_51, __v_52, __v_53, __v_54, __v_55, __v_56, __v_57, __v_58, __v_59, __v_60, __v_61, __v_62, __v_63, __v_64, __v_65, __v_66, __v_67, __v_68, __v_69, __v_70, __v_71, __v_72, __v_73, __v_74, __v_75, __v_76, __v_77, __v_78, __v_79, __v_80, __v_81, __v_82, __v_83, __v_84, __v_85, __v_86, __v_87, __v_88, __v_89, __v_90, __v_91, __v_92, __v_93, __v_94, __v_95]; let __cu = unconstrained; if let Some(result) = record.function_queries[69].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_69] = unsafe { *(result.output.as_ptr() as *const [G; OUT_69]) }; __ret } else { aiur_fn_69(__args, record, io_buffer, __cu)? } }; - let __v_128: G = __r_arr[0]; - let __v_129: G = __r_arr[1]; - let __v_130: G = __r_arr[2]; - let __v_131: G = __r_arr[3]; - let __v_132: G = __r_arr[4]; - let __v_133: G = __r_arr[5]; - let __v_134: G = __r_arr[6]; - let __v_135: G = __r_arr[7]; - let __v_136: G = __r_arr[8]; - let __v_137: G = __r_arr[9]; - let __v_138: G = __r_arr[10]; - let __v_139: G = __r_arr[11]; - let __v_140: G = __r_arr[12]; - let __v_141: G = __r_arr[13]; - let __v_142: G = __r_arr[14]; - let __v_143: G = __r_arr[15]; - let __v_144: G = __r_arr[16]; - let __v_145: G = __r_arr[17]; - let __v_146: G = __r_arr[18]; - let __v_147: G = __r_arr[19]; - let __v_148: G = __r_arr[20]; - let __v_149: G = __r_arr[21]; - let __v_150: G = __r_arr[22]; - let __v_151: G = __r_arr[23]; - let __v_152: G = __r_arr[24]; - let __v_153: G = __r_arr[25]; - let __v_154: G = __r_arr[26]; - let __v_155: G = __r_arr[27]; - let __v_156: G = __r_arr[28]; - let __v_157: G = __r_arr[29]; - let __v_158: G = __r_arr[30]; - let __v_159: G = __r_arr[31]; - let __v_160: G = __r_arr[32]; - let __v_161: G = __r_arr[33]; - let __v_162: G = __r_arr[34]; - let __v_163: G = __r_arr[35]; - let __v_164: G = __r_arr[36]; - let __v_165: G = __r_arr[37]; - let __v_166: G = __r_arr[38]; - let __v_167: G = __r_arr[39]; - let __v_168: G = __r_arr[40]; - let __v_169: G = __r_arr[41]; - let __v_170: G = __r_arr[42]; - let __v_171: G = __r_arr[43]; - let __v_172: G = __r_arr[44]; - let __v_173: G = __r_arr[45]; - let __v_174: G = __r_arr[46]; - let __v_175: G = __r_arr[47]; - let __v_176: G = __r_arr[48]; - let __v_177: G = __r_arr[49]; - let __v_178: G = __r_arr[50]; - let __v_179: G = __r_arr[51]; - let __v_180: G = __r_arr[52]; - let __v_181: G = __r_arr[53]; - let __v_182: G = __r_arr[54]; - let __v_183: G = __r_arr[55]; - let __v_184: G = __r_arr[56]; - let __v_185: G = __r_arr[57]; - let __v_186: G = __r_arr[58]; - let __v_187: G = __r_arr[59]; - let __v_188: G = __r_arr[60]; - let __v_189: G = __r_arr[61]; - let __v_190: G = __r_arr[62]; - let __v_191: G = __r_arr[63]; - let __v_192: G = __r_arr[64]; - let __v_193: G = __r_arr[65]; - let __v_194: G = __r_arr[66]; - let __v_195: G = __r_arr[67]; - let __v_196: G = __r_arr[68]; - let __v_197: G = __r_arr[69]; - let __v_198: G = __r_arr[70]; - let __v_199: G = __r_arr[71]; - let __v_200: G = __r_arr[72]; - let __v_201: G = __r_arr[73]; - let __v_202: G = __r_arr[74]; - let __v_203: G = __r_arr[75]; - let __v_204: G = __r_arr[76]; - let __v_205: G = __r_arr[77]; - let __v_206: G = __r_arr[78]; - let __v_207: G = __r_arr[79]; - let __v_208: G = __r_arr[80]; - let __v_209: G = __r_arr[81]; - let __v_210: G = __r_arr[82]; - let __v_211: G = __r_arr[83]; - let __v_212: G = __r_arr[84]; - let __v_213: G = __r_arr[85]; - let __v_214: G = __r_arr[86]; - let __v_215: G = __r_arr[87]; - let __v_216: G = __r_arr[88]; - let __v_217: G = __r_arr[89]; - let __v_218: G = __r_arr[90]; - let __v_219: G = __r_arr[91]; - let __v_220: G = __r_arr[92]; - let __v_221: G = __r_arr[93]; - let __v_222: G = __r_arr[94]; - let __v_223: G = __r_arr[95]; - let __v_224: G = __r_arr[96]; - let __v_225: G = __r_arr[97]; - let __v_226: G = __r_arr[98]; - let __v_227: G = __r_arr[99]; - let __v_228: G = __r_arr[100]; - let __v_229: G = __r_arr[101]; - let __v_230: G = __r_arr[102]; - let __v_231: G = __r_arr[103]; - let __v_232: G = __r_arr[104]; - let __v_233: G = __r_arr[105]; - let __v_234: G = __r_arr[106]; - let __v_235: G = __r_arr[107]; - let __v_236: G = __r_arr[108]; - let __v_237: G = __r_arr[109]; - let __v_238: G = __r_arr[110]; - let __v_239: G = __r_arr[111]; - let __v_240: G = __r_arr[112]; - let __v_241: G = __r_arr[113]; - let __v_242: G = __r_arr[114]; - let __v_243: G = __r_arr[115]; - let __v_244: G = __r_arr[116]; - let __v_245: G = __r_arr[117]; - let __v_246: G = __r_arr[118]; - let __v_247: G = __r_arr[119]; - let __v_248: G = __r_arr[120]; - let __v_249: G = __r_arr[121]; - let __v_250: G = __r_arr[122]; - let __v_251: G = __r_arr[123]; - let __v_252: G = __r_arr[124]; - let __v_253: G = __r_arr[125]; - let __v_254: G = __r_arr[126]; - let __v_255: G = __r_arr[127]; - let __r_arr: [G; OUT_69] = { let __args: [G; IN_69] = [__v_128, __v_129, __v_130, __v_131, __v_132, __v_133, __v_134, __v_135, __v_136, __v_137, __v_138, __v_139, __v_140, __v_141, __v_142, __v_143, __v_144, __v_145, __v_146, __v_147, __v_148, __v_149, __v_150, __v_151, __v_152, __v_153, __v_154, __v_155, __v_156, __v_157, __v_158, __v_159, __v_160, __v_161, __v_162, __v_163, __v_164, __v_165, __v_166, __v_167, __v_168, __v_169, __v_170, __v_171, __v_172, __v_173, __v_174, __v_175, __v_176, __v_177, __v_178, __v_179, __v_180, __v_181, __v_182, __v_183, __v_184, __v_185, __v_186, __v_187, __v_188, __v_189, __v_190, __v_191, __v_192, __v_193, __v_194, __v_195, __v_196, __v_197, __v_198, __v_199, __v_200, __v_201, __v_202, __v_203, __v_204, __v_205, __v_206, __v_207, __v_208, __v_209, __v_210, __v_211, __v_212, __v_213, __v_214, __v_215, __v_216, __v_217, __v_218, __v_219, __v_220, __v_221, __v_222, __v_223, __v_224, __v_225, __v_226, __v_227, __v_228, __v_229, __v_230, __v_231, __v_232, __v_233, __v_234, __v_235, __v_236, __v_237, __v_238, __v_239, __v_240, __v_241, __v_242, __v_243, __v_244, __v_245, __v_246, __v_247, __v_248, __v_249, __v_250, __v_251, __v_252, __v_253, __v_254, __v_255]; let __cu = unconstrained; if let Some(result) = record.function_queries[69].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_69] = unsafe { *(result.output.as_ptr() as *const [G; OUT_69]) }; __ret } else { aiur_fn_69(__args, record, io_buffer, __cu)? } }; - let __v_256: G = __r_arr[0]; - let __v_257: G = __r_arr[1]; - let __v_258: G = __r_arr[2]; - let __v_259: G = __r_arr[3]; - let __v_260: G = __r_arr[4]; - let __v_261: G = __r_arr[5]; - let __v_262: G = __r_arr[6]; - let __v_263: G = __r_arr[7]; - let __v_264: G = __r_arr[8]; - let __v_265: G = __r_arr[9]; - let __v_266: G = __r_arr[10]; - let __v_267: G = __r_arr[11]; - let __v_268: G = __r_arr[12]; - let __v_269: G = __r_arr[13]; - let __v_270: G = __r_arr[14]; - let __v_271: G = __r_arr[15]; - let __v_272: G = __r_arr[16]; - let __v_273: G = __r_arr[17]; - let __v_274: G = __r_arr[18]; - let __v_275: G = __r_arr[19]; - let __v_276: G = __r_arr[20]; - let __v_277: G = __r_arr[21]; - let __v_278: G = __r_arr[22]; - let __v_279: G = __r_arr[23]; - let __v_280: G = __r_arr[24]; - let __v_281: G = __r_arr[25]; - let __v_282: G = __r_arr[26]; - let __v_283: G = __r_arr[27]; - let __v_284: G = __r_arr[28]; - let __v_285: G = __r_arr[29]; - let __v_286: G = __r_arr[30]; - let __v_287: G = __r_arr[31]; - let __v_288: G = __r_arr[32]; - let __v_289: G = __r_arr[33]; - let __v_290: G = __r_arr[34]; - let __v_291: G = __r_arr[35]; - let __v_292: G = __r_arr[36]; - let __v_293: G = __r_arr[37]; - let __v_294: G = __r_arr[38]; - let __v_295: G = __r_arr[39]; - let __v_296: G = __r_arr[40]; - let __v_297: G = __r_arr[41]; - let __v_298: G = __r_arr[42]; - let __v_299: G = __r_arr[43]; - let __v_300: G = __r_arr[44]; - let __v_301: G = __r_arr[45]; - let __v_302: G = __r_arr[46]; - let __v_303: G = __r_arr[47]; - let __v_304: G = __r_arr[48]; - let __v_305: G = __r_arr[49]; - let __v_306: G = __r_arr[50]; - let __v_307: G = __r_arr[51]; - let __v_308: G = __r_arr[52]; - let __v_309: G = __r_arr[53]; - let __v_310: G = __r_arr[54]; - let __v_311: G = __r_arr[55]; - let __v_312: G = __r_arr[56]; - let __v_313: G = __r_arr[57]; - let __v_314: G = __r_arr[58]; - let __v_315: G = __r_arr[59]; - let __v_316: G = __r_arr[60]; - let __v_317: G = __r_arr[61]; - let __v_318: G = __r_arr[62]; - let __v_319: G = __r_arr[63]; - let __v_320: G = __r_arr[64]; - let __v_321: G = __r_arr[65]; - let __v_322: G = __r_arr[66]; - let __v_323: G = __r_arr[67]; - let __v_324: G = __r_arr[68]; - let __v_325: G = __r_arr[69]; - let __v_326: G = __r_arr[70]; - let __v_327: G = __r_arr[71]; - let __v_328: G = __r_arr[72]; - let __v_329: G = __r_arr[73]; - let __v_330: G = __r_arr[74]; - let __v_331: G = __r_arr[75]; - let __v_332: G = __r_arr[76]; - let __v_333: G = __r_arr[77]; - let __v_334: G = __r_arr[78]; - let __v_335: G = __r_arr[79]; - let __v_336: G = __r_arr[80]; - let __v_337: G = __r_arr[81]; - let __v_338: G = __r_arr[82]; - let __v_339: G = __r_arr[83]; - let __v_340: G = __r_arr[84]; - let __v_341: G = __r_arr[85]; - let __v_342: G = __r_arr[86]; - let __v_343: G = __r_arr[87]; - let __v_344: G = __r_arr[88]; - let __v_345: G = __r_arr[89]; - let __v_346: G = __r_arr[90]; - let __v_347: G = __r_arr[91]; - let __v_348: G = __r_arr[92]; - let __v_349: G = __r_arr[93]; - let __v_350: G = __r_arr[94]; - let __v_351: G = __r_arr[95]; - let __v_352: G = __r_arr[96]; - let __v_353: G = __r_arr[97]; - let __v_354: G = __r_arr[98]; - let __v_355: G = __r_arr[99]; - let __v_356: G = __r_arr[100]; - let __v_357: G = __r_arr[101]; - let __v_358: G = __r_arr[102]; - let __v_359: G = __r_arr[103]; - let __v_360: G = __r_arr[104]; - let __v_361: G = __r_arr[105]; - let __v_362: G = __r_arr[106]; - let __v_363: G = __r_arr[107]; - let __v_364: G = __r_arr[108]; - let __v_365: G = __r_arr[109]; - let __v_366: G = __r_arr[110]; - let __v_367: G = __r_arr[111]; - let __v_368: G = __r_arr[112]; - let __v_369: G = __r_arr[113]; - let __v_370: G = __r_arr[114]; - let __v_371: G = __r_arr[115]; - let __v_372: G = __r_arr[116]; - let __v_373: G = __r_arr[117]; - let __v_374: G = __r_arr[118]; - let __v_375: G = __r_arr[119]; - let __v_376: G = __r_arr[120]; - let __v_377: G = __r_arr[121]; - let __v_378: G = __r_arr[122]; - let __v_379: G = __r_arr[123]; - let __v_380: G = __r_arr[124]; - let __v_381: G = __r_arr[125]; - let __v_382: G = __r_arr[126]; - let __v_383: G = __r_arr[127]; - let __r_arr: [G; OUT_69] = { let __args: [G; IN_69] = [__v_256, __v_257, __v_258, __v_259, __v_260, __v_261, __v_262, __v_263, __v_264, __v_265, __v_266, __v_267, __v_268, __v_269, __v_270, __v_271, __v_272, __v_273, __v_274, __v_275, __v_276, __v_277, __v_278, __v_279, __v_280, __v_281, __v_282, __v_283, __v_284, __v_285, __v_286, __v_287, __v_288, __v_289, __v_290, __v_291, __v_292, __v_293, __v_294, __v_295, __v_296, __v_297, __v_298, __v_299, __v_300, __v_301, __v_302, __v_303, __v_304, __v_305, __v_306, __v_307, __v_308, __v_309, __v_310, __v_311, __v_312, __v_313, __v_314, __v_315, __v_316, __v_317, __v_318, __v_319, __v_320, __v_321, __v_322, __v_323, __v_324, __v_325, __v_326, __v_327, __v_328, __v_329, __v_330, __v_331, __v_332, __v_333, __v_334, __v_335, __v_336, __v_337, __v_338, __v_339, __v_340, __v_341, __v_342, __v_343, __v_344, __v_345, __v_346, __v_347, __v_348, __v_349, __v_350, __v_351, __v_352, __v_353, __v_354, __v_355, __v_356, __v_357, __v_358, __v_359, __v_360, __v_361, __v_362, __v_363, __v_364, __v_365, __v_366, __v_367, __v_368, __v_369, __v_370, __v_371, __v_372, __v_373, __v_374, __v_375, __v_376, __v_377, __v_378, __v_379, __v_380, __v_381, __v_382, __v_383]; let __cu = unconstrained; if let Some(result) = record.function_queries[69].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_69] = unsafe { *(result.output.as_ptr() as *const [G; OUT_69]) }; __ret } else { aiur_fn_69(__args, record, io_buffer, __cu)? } }; - let __v_384: G = __r_arr[0]; - let __v_385: G = __r_arr[1]; - let __v_386: G = __r_arr[2]; - let __v_387: G = __r_arr[3]; - let __v_388: G = __r_arr[4]; - let __v_389: G = __r_arr[5]; - let __v_390: G = __r_arr[6]; - let __v_391: G = __r_arr[7]; - let __v_392: G = __r_arr[8]; - let __v_393: G = __r_arr[9]; - let __v_394: G = __r_arr[10]; - let __v_395: G = __r_arr[11]; - let __v_396: G = __r_arr[12]; - let __v_397: G = __r_arr[13]; - let __v_398: G = __r_arr[14]; - let __v_399: G = __r_arr[15]; - let __v_400: G = __r_arr[16]; - let __v_401: G = __r_arr[17]; - let __v_402: G = __r_arr[18]; - let __v_403: G = __r_arr[19]; - let __v_404: G = __r_arr[20]; - let __v_405: G = __r_arr[21]; - let __v_406: G = __r_arr[22]; - let __v_407: G = __r_arr[23]; - let __v_408: G = __r_arr[24]; - let __v_409: G = __r_arr[25]; - let __v_410: G = __r_arr[26]; - let __v_411: G = __r_arr[27]; - let __v_412: G = __r_arr[28]; - let __v_413: G = __r_arr[29]; - let __v_414: G = __r_arr[30]; - let __v_415: G = __r_arr[31]; - let __v_416: G = __r_arr[32]; - let __v_417: G = __r_arr[33]; - let __v_418: G = __r_arr[34]; - let __v_419: G = __r_arr[35]; - let __v_420: G = __r_arr[36]; - let __v_421: G = __r_arr[37]; - let __v_422: G = __r_arr[38]; - let __v_423: G = __r_arr[39]; - let __v_424: G = __r_arr[40]; - let __v_425: G = __r_arr[41]; - let __v_426: G = __r_arr[42]; - let __v_427: G = __r_arr[43]; - let __v_428: G = __r_arr[44]; - let __v_429: G = __r_arr[45]; - let __v_430: G = __r_arr[46]; - let __v_431: G = __r_arr[47]; - let __v_432: G = __r_arr[48]; - let __v_433: G = __r_arr[49]; - let __v_434: G = __r_arr[50]; - let __v_435: G = __r_arr[51]; - let __v_436: G = __r_arr[52]; - let __v_437: G = __r_arr[53]; - let __v_438: G = __r_arr[54]; - let __v_439: G = __r_arr[55]; - let __v_440: G = __r_arr[56]; - let __v_441: G = __r_arr[57]; - let __v_442: G = __r_arr[58]; - let __v_443: G = __r_arr[59]; - let __v_444: G = __r_arr[60]; - let __v_445: G = __r_arr[61]; - let __v_446: G = __r_arr[62]; - let __v_447: G = __r_arr[63]; - let __v_448: G = __r_arr[64]; - let __v_449: G = __r_arr[65]; - let __v_450: G = __r_arr[66]; - let __v_451: G = __r_arr[67]; - let __v_452: G = __r_arr[68]; - let __v_453: G = __r_arr[69]; - let __v_454: G = __r_arr[70]; - let __v_455: G = __r_arr[71]; - let __v_456: G = __r_arr[72]; - let __v_457: G = __r_arr[73]; - let __v_458: G = __r_arr[74]; - let __v_459: G = __r_arr[75]; - let __v_460: G = __r_arr[76]; - let __v_461: G = __r_arr[77]; - let __v_462: G = __r_arr[78]; - let __v_463: G = __r_arr[79]; - let __v_464: G = __r_arr[80]; - let __v_465: G = __r_arr[81]; - let __v_466: G = __r_arr[82]; - let __v_467: G = __r_arr[83]; - let __v_468: G = __r_arr[84]; - let __v_469: G = __r_arr[85]; - let __v_470: G = __r_arr[86]; - let __v_471: G = __r_arr[87]; - let __v_472: G = __r_arr[88]; - let __v_473: G = __r_arr[89]; - let __v_474: G = __r_arr[90]; - let __v_475: G = __r_arr[91]; - let __v_476: G = __r_arr[92]; - let __v_477: G = __r_arr[93]; - let __v_478: G = __r_arr[94]; - let __v_479: G = __r_arr[95]; - let __v_480: G = __r_arr[96]; - let __v_481: G = __r_arr[97]; - let __v_482: G = __r_arr[98]; - let __v_483: G = __r_arr[99]; - let __v_484: G = __r_arr[100]; - let __v_485: G = __r_arr[101]; - let __v_486: G = __r_arr[102]; - let __v_487: G = __r_arr[103]; - let __v_488: G = __r_arr[104]; - let __v_489: G = __r_arr[105]; - let __v_490: G = __r_arr[106]; - let __v_491: G = __r_arr[107]; - let __v_492: G = __r_arr[108]; - let __v_493: G = __r_arr[109]; - let __v_494: G = __r_arr[110]; - let __v_495: G = __r_arr[111]; - let __v_496: G = __r_arr[112]; - let __v_497: G = __r_arr[113]; - let __v_498: G = __r_arr[114]; - let __v_499: G = __r_arr[115]; - let __v_500: G = __r_arr[116]; - let __v_501: G = __r_arr[117]; - let __v_502: G = __r_arr[118]; - let __v_503: G = __r_arr[119]; - let __v_504: G = __r_arr[120]; - let __v_505: G = __r_arr[121]; - let __v_506: G = __r_arr[122]; - let __v_507: G = __r_arr[123]; - let __v_508: G = __r_arr[124]; - let __v_509: G = __r_arr[125]; - let __v_510: G = __r_arr[126]; - let __v_511: G = __r_arr[127]; - let __r_arr: [G; OUT_69] = { let __args: [G; IN_69] = [__v_384, __v_385, __v_386, __v_387, __v_388, __v_389, __v_390, __v_391, __v_392, __v_393, __v_394, __v_395, __v_396, __v_397, __v_398, __v_399, __v_400, __v_401, __v_402, __v_403, __v_404, __v_405, __v_406, __v_407, __v_408, __v_409, __v_410, __v_411, __v_412, __v_413, __v_414, __v_415, __v_416, __v_417, __v_418, __v_419, __v_420, __v_421, __v_422, __v_423, __v_424, __v_425, __v_426, __v_427, __v_428, __v_429, __v_430, __v_431, __v_432, __v_433, __v_434, __v_435, __v_436, __v_437, __v_438, __v_439, __v_440, __v_441, __v_442, __v_443, __v_444, __v_445, __v_446, __v_447, __v_448, __v_449, __v_450, __v_451, __v_452, __v_453, __v_454, __v_455, __v_456, __v_457, __v_458, __v_459, __v_460, __v_461, __v_462, __v_463, __v_464, __v_465, __v_466, __v_467, __v_468, __v_469, __v_470, __v_471, __v_472, __v_473, __v_474, __v_475, __v_476, __v_477, __v_478, __v_479, __v_480, __v_481, __v_482, __v_483, __v_484, __v_485, __v_486, __v_487, __v_488, __v_489, __v_490, __v_491, __v_492, __v_493, __v_494, __v_495, __v_496, __v_497, __v_498, __v_499, __v_500, __v_501, __v_502, __v_503, __v_504, __v_505, __v_506, __v_507, __v_508, __v_509, __v_510, __v_511]; let __cu = unconstrained; if let Some(result) = record.function_queries[69].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_69] = unsafe { *(result.output.as_ptr() as *const [G; OUT_69]) }; __ret } else { aiur_fn_69(__args, record, io_buffer, __cu)? } }; - let __v_512: G = __r_arr[0]; - let __v_513: G = __r_arr[1]; - let __v_514: G = __r_arr[2]; - let __v_515: G = __r_arr[3]; - let __v_516: G = __r_arr[4]; - let __v_517: G = __r_arr[5]; - let __v_518: G = __r_arr[6]; - let __v_519: G = __r_arr[7]; - let __v_520: G = __r_arr[8]; - let __v_521: G = __r_arr[9]; - let __v_522: G = __r_arr[10]; - let __v_523: G = __r_arr[11]; - let __v_524: G = __r_arr[12]; - let __v_525: G = __r_arr[13]; - let __v_526: G = __r_arr[14]; - let __v_527: G = __r_arr[15]; - let __v_528: G = __r_arr[16]; - let __v_529: G = __r_arr[17]; - let __v_530: G = __r_arr[18]; - let __v_531: G = __r_arr[19]; - let __v_532: G = __r_arr[20]; - let __v_533: G = __r_arr[21]; - let __v_534: G = __r_arr[22]; - let __v_535: G = __r_arr[23]; - let __v_536: G = __r_arr[24]; - let __v_537: G = __r_arr[25]; - let __v_538: G = __r_arr[26]; - let __v_539: G = __r_arr[27]; - let __v_540: G = __r_arr[28]; - let __v_541: G = __r_arr[29]; - let __v_542: G = __r_arr[30]; - let __v_543: G = __r_arr[31]; - let __v_544: G = __r_arr[32]; - let __v_545: G = __r_arr[33]; - let __v_546: G = __r_arr[34]; - let __v_547: G = __r_arr[35]; - let __v_548: G = __r_arr[36]; - let __v_549: G = __r_arr[37]; - let __v_550: G = __r_arr[38]; - let __v_551: G = __r_arr[39]; - let __v_552: G = __r_arr[40]; - let __v_553: G = __r_arr[41]; - let __v_554: G = __r_arr[42]; - let __v_555: G = __r_arr[43]; - let __v_556: G = __r_arr[44]; - let __v_557: G = __r_arr[45]; - let __v_558: G = __r_arr[46]; - let __v_559: G = __r_arr[47]; - let __v_560: G = __r_arr[48]; - let __v_561: G = __r_arr[49]; - let __v_562: G = __r_arr[50]; - let __v_563: G = __r_arr[51]; - let __v_564: G = __r_arr[52]; - let __v_565: G = __r_arr[53]; - let __v_566: G = __r_arr[54]; - let __v_567: G = __r_arr[55]; - let __v_568: G = __r_arr[56]; - let __v_569: G = __r_arr[57]; - let __v_570: G = __r_arr[58]; - let __v_571: G = __r_arr[59]; - let __v_572: G = __r_arr[60]; - let __v_573: G = __r_arr[61]; - let __v_574: G = __r_arr[62]; - let __v_575: G = __r_arr[63]; - let __v_576: G = __r_arr[64]; - let __v_577: G = __r_arr[65]; - let __v_578: G = __r_arr[66]; - let __v_579: G = __r_arr[67]; - let __v_580: G = __r_arr[68]; - let __v_581: G = __r_arr[69]; - let __v_582: G = __r_arr[70]; - let __v_583: G = __r_arr[71]; - let __v_584: G = __r_arr[72]; - let __v_585: G = __r_arr[73]; - let __v_586: G = __r_arr[74]; - let __v_587: G = __r_arr[75]; - let __v_588: G = __r_arr[76]; - let __v_589: G = __r_arr[77]; - let __v_590: G = __r_arr[78]; - let __v_591: G = __r_arr[79]; - let __v_592: G = __r_arr[80]; - let __v_593: G = __r_arr[81]; - let __v_594: G = __r_arr[82]; - let __v_595: G = __r_arr[83]; - let __v_596: G = __r_arr[84]; - let __v_597: G = __r_arr[85]; - let __v_598: G = __r_arr[86]; - let __v_599: G = __r_arr[87]; - let __v_600: G = __r_arr[88]; - let __v_601: G = __r_arr[89]; - let __v_602: G = __r_arr[90]; - let __v_603: G = __r_arr[91]; - let __v_604: G = __r_arr[92]; - let __v_605: G = __r_arr[93]; - let __v_606: G = __r_arr[94]; - let __v_607: G = __r_arr[95]; - let __v_608: G = __r_arr[96]; - let __v_609: G = __r_arr[97]; - let __v_610: G = __r_arr[98]; - let __v_611: G = __r_arr[99]; - let __v_612: G = __r_arr[100]; - let __v_613: G = __r_arr[101]; - let __v_614: G = __r_arr[102]; - let __v_615: G = __r_arr[103]; - let __v_616: G = __r_arr[104]; - let __v_617: G = __r_arr[105]; - let __v_618: G = __r_arr[106]; - let __v_619: G = __r_arr[107]; - let __v_620: G = __r_arr[108]; - let __v_621: G = __r_arr[109]; - let __v_622: G = __r_arr[110]; - let __v_623: G = __r_arr[111]; - let __v_624: G = __r_arr[112]; - let __v_625: G = __r_arr[113]; - let __v_626: G = __r_arr[114]; - let __v_627: G = __r_arr[115]; - let __v_628: G = __r_arr[116]; - let __v_629: G = __r_arr[117]; - let __v_630: G = __r_arr[118]; - let __v_631: G = __r_arr[119]; - let __v_632: G = __r_arr[120]; - let __v_633: G = __r_arr[121]; - let __v_634: G = __r_arr[122]; - let __v_635: G = __r_arr[123]; - let __v_636: G = __r_arr[124]; - let __v_637: G = __r_arr[125]; - let __v_638: G = __r_arr[126]; - let __v_639: G = __r_arr[127]; - let __r_arr: [G; OUT_69] = { let __args: [G; IN_69] = [__v_512, __v_513, __v_514, __v_515, __v_516, __v_517, __v_518, __v_519, __v_520, __v_521, __v_522, __v_523, __v_524, __v_525, __v_526, __v_527, __v_528, __v_529, __v_530, __v_531, __v_532, __v_533, __v_534, __v_535, __v_536, __v_537, __v_538, __v_539, __v_540, __v_541, __v_542, __v_543, __v_544, __v_545, __v_546, __v_547, __v_548, __v_549, __v_550, __v_551, __v_552, __v_553, __v_554, __v_555, __v_556, __v_557, __v_558, __v_559, __v_560, __v_561, __v_562, __v_563, __v_564, __v_565, __v_566, __v_567, __v_568, __v_569, __v_570, __v_571, __v_572, __v_573, __v_574, __v_575, __v_576, __v_577, __v_578, __v_579, __v_580, __v_581, __v_582, __v_583, __v_584, __v_585, __v_586, __v_587, __v_588, __v_589, __v_590, __v_591, __v_592, __v_593, __v_594, __v_595, __v_596, __v_597, __v_598, __v_599, __v_600, __v_601, __v_602, __v_603, __v_604, __v_605, __v_606, __v_607, __v_608, __v_609, __v_610, __v_611, __v_612, __v_613, __v_614, __v_615, __v_616, __v_617, __v_618, __v_619, __v_620, __v_621, __v_622, __v_623, __v_624, __v_625, __v_626, __v_627, __v_628, __v_629, __v_630, __v_631, __v_632, __v_633, __v_634, __v_635, __v_636, __v_637, __v_638, __v_639]; let __cu = unconstrained; if let Some(result) = record.function_queries[69].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_69] = unsafe { *(result.output.as_ptr() as *const [G; OUT_69]) }; __ret } else { aiur_fn_69(__args, record, io_buffer, __cu)? } }; - let __v_640: G = __r_arr[0]; - let __v_641: G = __r_arr[1]; - let __v_642: G = __r_arr[2]; - let __v_643: G = __r_arr[3]; - let __v_644: G = __r_arr[4]; - let __v_645: G = __r_arr[5]; - let __v_646: G = __r_arr[6]; - let __v_647: G = __r_arr[7]; - let __v_648: G = __r_arr[8]; - let __v_649: G = __r_arr[9]; - let __v_650: G = __r_arr[10]; - let __v_651: G = __r_arr[11]; - let __v_652: G = __r_arr[12]; - let __v_653: G = __r_arr[13]; - let __v_654: G = __r_arr[14]; - let __v_655: G = __r_arr[15]; - let __v_656: G = __r_arr[16]; - let __v_657: G = __r_arr[17]; - let __v_658: G = __r_arr[18]; - let __v_659: G = __r_arr[19]; - let __v_660: G = __r_arr[20]; - let __v_661: G = __r_arr[21]; - let __v_662: G = __r_arr[22]; - let __v_663: G = __r_arr[23]; - let __v_664: G = __r_arr[24]; - let __v_665: G = __r_arr[25]; - let __v_666: G = __r_arr[26]; - let __v_667: G = __r_arr[27]; - let __v_668: G = __r_arr[28]; - let __v_669: G = __r_arr[29]; - let __v_670: G = __r_arr[30]; - let __v_671: G = __r_arr[31]; - let __v_672: G = __r_arr[32]; - let __v_673: G = __r_arr[33]; - let __v_674: G = __r_arr[34]; - let __v_675: G = __r_arr[35]; - let __v_676: G = __r_arr[36]; - let __v_677: G = __r_arr[37]; - let __v_678: G = __r_arr[38]; - let __v_679: G = __r_arr[39]; - let __v_680: G = __r_arr[40]; - let __v_681: G = __r_arr[41]; - let __v_682: G = __r_arr[42]; - let __v_683: G = __r_arr[43]; - let __v_684: G = __r_arr[44]; - let __v_685: G = __r_arr[45]; - let __v_686: G = __r_arr[46]; - let __v_687: G = __r_arr[47]; - let __v_688: G = __r_arr[48]; - let __v_689: G = __r_arr[49]; - let __v_690: G = __r_arr[50]; - let __v_691: G = __r_arr[51]; - let __v_692: G = __r_arr[52]; - let __v_693: G = __r_arr[53]; - let __v_694: G = __r_arr[54]; - let __v_695: G = __r_arr[55]; - let __v_696: G = __r_arr[56]; - let __v_697: G = __r_arr[57]; - let __v_698: G = __r_arr[58]; - let __v_699: G = __r_arr[59]; - let __v_700: G = __r_arr[60]; - let __v_701: G = __r_arr[61]; - let __v_702: G = __r_arr[62]; - let __v_703: G = __r_arr[63]; - let __v_704: G = __r_arr[64]; - let __v_705: G = __r_arr[65]; - let __v_706: G = __r_arr[66]; - let __v_707: G = __r_arr[67]; - let __v_708: G = __r_arr[68]; - let __v_709: G = __r_arr[69]; - let __v_710: G = __r_arr[70]; - let __v_711: G = __r_arr[71]; - let __v_712: G = __r_arr[72]; - let __v_713: G = __r_arr[73]; - let __v_714: G = __r_arr[74]; - let __v_715: G = __r_arr[75]; - let __v_716: G = __r_arr[76]; - let __v_717: G = __r_arr[77]; - let __v_718: G = __r_arr[78]; - let __v_719: G = __r_arr[79]; - let __v_720: G = __r_arr[80]; - let __v_721: G = __r_arr[81]; - let __v_722: G = __r_arr[82]; - let __v_723: G = __r_arr[83]; - let __v_724: G = __r_arr[84]; - let __v_725: G = __r_arr[85]; - let __v_726: G = __r_arr[86]; - let __v_727: G = __r_arr[87]; - let __v_728: G = __r_arr[88]; - let __v_729: G = __r_arr[89]; - let __v_730: G = __r_arr[90]; - let __v_731: G = __r_arr[91]; - let __v_732: G = __r_arr[92]; - let __v_733: G = __r_arr[93]; - let __v_734: G = __r_arr[94]; - let __v_735: G = __r_arr[95]; - let __v_736: G = __r_arr[96]; - let __v_737: G = __r_arr[97]; - let __v_738: G = __r_arr[98]; - let __v_739: G = __r_arr[99]; - let __v_740: G = __r_arr[100]; - let __v_741: G = __r_arr[101]; - let __v_742: G = __r_arr[102]; - let __v_743: G = __r_arr[103]; - let __v_744: G = __r_arr[104]; - let __v_745: G = __r_arr[105]; - let __v_746: G = __r_arr[106]; - let __v_747: G = __r_arr[107]; - let __v_748: G = __r_arr[108]; - let __v_749: G = __r_arr[109]; - let __v_750: G = __r_arr[110]; - let __v_751: G = __r_arr[111]; - let __v_752: G = __r_arr[112]; - let __v_753: G = __r_arr[113]; - let __v_754: G = __r_arr[114]; - let __v_755: G = __r_arr[115]; - let __v_756: G = __r_arr[116]; - let __v_757: G = __r_arr[117]; - let __v_758: G = __r_arr[118]; - let __v_759: G = __r_arr[119]; - let __v_760: G = __r_arr[120]; - let __v_761: G = __r_arr[121]; - let __v_762: G = __r_arr[122]; - let __v_763: G = __r_arr[123]; - let __v_764: G = __r_arr[124]; - let __v_765: G = __r_arr[125]; - let __v_766: G = __r_arr[126]; - let __v_767: G = __r_arr[127]; - let __r_arr: [G; OUT_69] = { let __args: [G; IN_69] = [__v_640, __v_641, __v_642, __v_643, __v_644, __v_645, __v_646, __v_647, __v_648, __v_649, __v_650, __v_651, __v_652, __v_653, __v_654, __v_655, __v_656, __v_657, __v_658, __v_659, __v_660, __v_661, __v_662, __v_663, __v_664, __v_665, __v_666, __v_667, __v_668, __v_669, __v_670, __v_671, __v_672, __v_673, __v_674, __v_675, __v_676, __v_677, __v_678, __v_679, __v_680, __v_681, __v_682, __v_683, __v_684, __v_685, __v_686, __v_687, __v_688, __v_689, __v_690, __v_691, __v_692, __v_693, __v_694, __v_695, __v_696, __v_697, __v_698, __v_699, __v_700, __v_701, __v_702, __v_703, __v_704, __v_705, __v_706, __v_707, __v_708, __v_709, __v_710, __v_711, __v_712, __v_713, __v_714, __v_715, __v_716, __v_717, __v_718, __v_719, __v_720, __v_721, __v_722, __v_723, __v_724, __v_725, __v_726, __v_727, __v_728, __v_729, __v_730, __v_731, __v_732, __v_733, __v_734, __v_735, __v_736, __v_737, __v_738, __v_739, __v_740, __v_741, __v_742, __v_743, __v_744, __v_745, __v_746, __v_747, __v_748, __v_749, __v_750, __v_751, __v_752, __v_753, __v_754, __v_755, __v_756, __v_757, __v_758, __v_759, __v_760, __v_761, __v_762, __v_763, __v_764, __v_765, __v_766, __v_767]; let __cu = unconstrained; if let Some(result) = record.function_queries[69].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_69] = unsafe { *(result.output.as_ptr() as *const [G; OUT_69]) }; __ret } else { aiur_fn_69(__args, record, io_buffer, __cu)? } }; - let __v_768: G = __r_arr[0]; - let __v_769: G = __r_arr[1]; - let __v_770: G = __r_arr[2]; - let __v_771: G = __r_arr[3]; - let __v_772: G = __r_arr[4]; - let __v_773: G = __r_arr[5]; - let __v_774: G = __r_arr[6]; - let __v_775: G = __r_arr[7]; - let __v_776: G = __r_arr[8]; - let __v_777: G = __r_arr[9]; - let __v_778: G = __r_arr[10]; - let __v_779: G = __r_arr[11]; - let __v_780: G = __r_arr[12]; - let __v_781: G = __r_arr[13]; - let __v_782: G = __r_arr[14]; - let __v_783: G = __r_arr[15]; - let __v_784: G = __r_arr[16]; - let __v_785: G = __r_arr[17]; - let __v_786: G = __r_arr[18]; - let __v_787: G = __r_arr[19]; - let __v_788: G = __r_arr[20]; - let __v_789: G = __r_arr[21]; - let __v_790: G = __r_arr[22]; - let __v_791: G = __r_arr[23]; - let __v_792: G = __r_arr[24]; - let __v_793: G = __r_arr[25]; - let __v_794: G = __r_arr[26]; - let __v_795: G = __r_arr[27]; - let __v_796: G = __r_arr[28]; - let __v_797: G = __r_arr[29]; - let __v_798: G = __r_arr[30]; - let __v_799: G = __r_arr[31]; - let __v_800: G = __r_arr[32]; - let __v_801: G = __r_arr[33]; - let __v_802: G = __r_arr[34]; - let __v_803: G = __r_arr[35]; - let __v_804: G = __r_arr[36]; - let __v_805: G = __r_arr[37]; - let __v_806: G = __r_arr[38]; - let __v_807: G = __r_arr[39]; - let __v_808: G = __r_arr[40]; - let __v_809: G = __r_arr[41]; - let __v_810: G = __r_arr[42]; - let __v_811: G = __r_arr[43]; - let __v_812: G = __r_arr[44]; - let __v_813: G = __r_arr[45]; - let __v_814: G = __r_arr[46]; - let __v_815: G = __r_arr[47]; - let __v_816: G = __r_arr[48]; - let __v_817: G = __r_arr[49]; - let __v_818: G = __r_arr[50]; - let __v_819: G = __r_arr[51]; - let __v_820: G = __r_arr[52]; - let __v_821: G = __r_arr[53]; - let __v_822: G = __r_arr[54]; - let __v_823: G = __r_arr[55]; - let __v_824: G = __r_arr[56]; - let __v_825: G = __r_arr[57]; - let __v_826: G = __r_arr[58]; - let __v_827: G = __r_arr[59]; - let __v_828: G = __r_arr[60]; - let __v_829: G = __r_arr[61]; - let __v_830: G = __r_arr[62]; - let __v_831: G = __r_arr[63]; - let __v_832: G = __r_arr[64]; - let __v_833: G = __r_arr[65]; - let __v_834: G = __r_arr[66]; - let __v_835: G = __r_arr[67]; - let __v_836: G = __r_arr[68]; - let __v_837: G = __r_arr[69]; - let __v_838: G = __r_arr[70]; - let __v_839: G = __r_arr[71]; - let __v_840: G = __r_arr[72]; - let __v_841: G = __r_arr[73]; - let __v_842: G = __r_arr[74]; - let __v_843: G = __r_arr[75]; - let __v_844: G = __r_arr[76]; - let __v_845: G = __r_arr[77]; - let __v_846: G = __r_arr[78]; - let __v_847: G = __r_arr[79]; - let __v_848: G = __r_arr[80]; - let __v_849: G = __r_arr[81]; - let __v_850: G = __r_arr[82]; - let __v_851: G = __r_arr[83]; - let __v_852: G = __r_arr[84]; - let __v_853: G = __r_arr[85]; - let __v_854: G = __r_arr[86]; - let __v_855: G = __r_arr[87]; - let __v_856: G = __r_arr[88]; - let __v_857: G = __r_arr[89]; - let __v_858: G = __r_arr[90]; - let __v_859: G = __r_arr[91]; - let __v_860: G = __r_arr[92]; - let __v_861: G = __r_arr[93]; - let __v_862: G = __r_arr[94]; - let __v_863: G = __r_arr[95]; - let __v_864: G = __r_arr[96]; - let __v_865: G = __r_arr[97]; - let __v_866: G = __r_arr[98]; - let __v_867: G = __r_arr[99]; - let __v_868: G = __r_arr[100]; - let __v_869: G = __r_arr[101]; - let __v_870: G = __r_arr[102]; - let __v_871: G = __r_arr[103]; - let __v_872: G = __r_arr[104]; - let __v_873: G = __r_arr[105]; - let __v_874: G = __r_arr[106]; - let __v_875: G = __r_arr[107]; - let __v_876: G = __r_arr[108]; - let __v_877: G = __r_arr[109]; - let __v_878: G = __r_arr[110]; - let __v_879: G = __r_arr[111]; - let __v_880: G = __r_arr[112]; - let __v_881: G = __r_arr[113]; - let __v_882: G = __r_arr[114]; - let __v_883: G = __r_arr[115]; - let __v_884: G = __r_arr[116]; - let __v_885: G = __r_arr[117]; - let __v_886: G = __r_arr[118]; - let __v_887: G = __r_arr[119]; - let __v_888: G = __r_arr[120]; - let __v_889: G = __r_arr[121]; - let __v_890: G = __r_arr[122]; - let __v_891: G = __r_arr[123]; - let __v_892: G = __r_arr[124]; - let __v_893: G = __r_arr[125]; - let __v_894: G = __r_arr[126]; - let __v_895: G = __r_arr[127]; - let __r_arr: [G; OUT_69] = { let __args: [G; IN_69] = [__v_768, __v_769, __v_770, __v_771, __v_772, __v_773, __v_774, __v_775, __v_776, __v_777, __v_778, __v_779, __v_780, __v_781, __v_782, __v_783, __v_784, __v_785, __v_786, __v_787, __v_788, __v_789, __v_790, __v_791, __v_792, __v_793, __v_794, __v_795, __v_796, __v_797, __v_798, __v_799, __v_800, __v_801, __v_802, __v_803, __v_804, __v_805, __v_806, __v_807, __v_808, __v_809, __v_810, __v_811, __v_812, __v_813, __v_814, __v_815, __v_816, __v_817, __v_818, __v_819, __v_820, __v_821, __v_822, __v_823, __v_824, __v_825, __v_826, __v_827, __v_828, __v_829, __v_830, __v_831, __v_832, __v_833, __v_834, __v_835, __v_836, __v_837, __v_838, __v_839, __v_840, __v_841, __v_842, __v_843, __v_844, __v_845, __v_846, __v_847, __v_848, __v_849, __v_850, __v_851, __v_852, __v_853, __v_854, __v_855, __v_856, __v_857, __v_858, __v_859, __v_860, __v_861, __v_862, __v_863, __v_864, __v_865, __v_866, __v_867, __v_868, __v_869, __v_870, __v_871, __v_872, __v_873, __v_874, __v_875, __v_876, __v_877, __v_878, __v_879, __v_880, __v_881, __v_882, __v_883, __v_884, __v_885, __v_886, __v_887, __v_888, __v_889, __v_890, __v_891, __v_892, __v_893, __v_894, __v_895]; let __cu = unconstrained; if let Some(result) = record.function_queries[69].get_mut(&__args[..]) { if !unconstrained { *result.multiplicity += G::ONE; } let __ret: [G; OUT_69] = unsafe { *(result.output.as_ptr() as *const [G; OUT_69]) }; __ret } else { aiur_fn_69(__args, record, io_buffer, __cu)? } }; - let __v_896: G = __r_arr[0]; - let __v_897: G = __r_arr[1]; - let __v_898: G = __r_arr[2]; - let __v_899: G = __r_arr[3]; - let __v_900: G = __r_arr[4]; - let __v_901: G = __r_arr[5]; - let __v_902: G = __r_arr[6]; - let __v_903: G = __r_arr[7]; - let __v_904: G = __r_arr[8]; - let __v_905: G = __r_arr[9]; - let __v_906: G = __r_arr[10]; - let __v_907: G = __r_arr[11]; - let __v_908: G = __r_arr[12]; - let __v_909: G = __r_arr[13]; - let __v_910: G = __r_arr[14]; - let __v_911: G = __r_arr[15]; - let __v_912: G = __r_arr[16]; - let __v_913: G = __r_arr[17]; - let __v_914: G = __r_arr[18]; - let __v_915: G = __r_arr[19]; - let __v_916: G = __r_arr[20]; - let __v_917: G = __r_arr[21]; - let __v_918: G = __r_arr[22]; - let __v_919: G = __r_arr[23]; - let __v_920: G = __r_arr[24]; - let __v_921: G = __r_arr[25]; - let __v_922: G = __r_arr[26]; - let __v_923: G = __r_arr[27]; - let __v_924: G = __r_arr[28]; - let __v_925: G = __r_arr[29]; - let __v_926: G = __r_arr[30]; - let __v_927: G = __r_arr[31]; - let __v_928: G = __r_arr[32]; - let __v_929: G = __r_arr[33]; - let __v_930: G = __r_arr[34]; - let __v_931: G = __r_arr[35]; - let __v_932: G = __r_arr[36]; - let __v_933: G = __r_arr[37]; - let __v_934: G = __r_arr[38]; - let __v_935: G = __r_arr[39]; - let __v_936: G = __r_arr[40]; - let __v_937: G = __r_arr[41]; - let __v_938: G = __r_arr[42]; - let __v_939: G = __r_arr[43]; - let __v_940: G = __r_arr[44]; - let __v_941: G = __r_arr[45]; - let __v_942: G = __r_arr[46]; - let __v_943: G = __r_arr[47]; - let __v_944: G = __r_arr[48]; - let __v_945: G = __r_arr[49]; - let __v_946: G = __r_arr[50]; - let __v_947: G = __r_arr[51]; - let __v_948: G = __r_arr[52]; - let __v_949: G = __r_arr[53]; - let __v_950: G = __r_arr[54]; - let __v_951: G = __r_arr[55]; - let __v_952: G = __r_arr[56]; - let __v_953: G = __r_arr[57]; - let __v_954: G = __r_arr[58]; - let __v_955: G = __r_arr[59]; - let __v_956: G = __r_arr[60]; - let __v_957: G = __r_arr[61]; - let __v_958: G = __r_arr[62]; - let __v_959: G = __r_arr[63]; - let __v_960: G = __r_arr[64]; - let __v_961: G = __r_arr[65]; - let __v_962: G = __r_arr[66]; - let __v_963: G = __r_arr[67]; - let __v_964: G = __r_arr[68]; - let __v_965: G = __r_arr[69]; - let __v_966: G = __r_arr[70]; - let __v_967: G = __r_arr[71]; - let __v_968: G = __r_arr[72]; - let __v_969: G = __r_arr[73]; - let __v_970: G = __r_arr[74]; - let __v_971: G = __r_arr[75]; - let __v_972: G = __r_arr[76]; - let __v_973: G = __r_arr[77]; - let __v_974: G = __r_arr[78]; - let __v_975: G = __r_arr[79]; - let __v_976: G = __r_arr[80]; - let __v_977: G = __r_arr[81]; - let __v_978: G = __r_arr[82]; - let __v_979: G = __r_arr[83]; - let __v_980: G = __r_arr[84]; - let __v_981: G = __r_arr[85]; - let __v_982: G = __r_arr[86]; - let __v_983: G = __r_arr[87]; - let __v_984: G = __r_arr[88]; - let __v_985: G = __r_arr[89]; - let __v_986: G = __r_arr[90]; - let __v_987: G = __r_arr[91]; - let __v_988: G = __r_arr[92]; - let __v_989: G = __r_arr[93]; - let __v_990: G = __r_arr[94]; - let __v_991: G = __r_arr[95]; - let __v_992: G = __r_arr[96]; - let __v_993: G = __r_arr[97]; - let __v_994: G = __r_arr[98]; - let __v_995: G = __r_arr[99]; - let __v_996: G = __r_arr[100]; - let __v_997: G = __r_arr[101]; - let __v_998: G = __r_arr[102]; - let __v_999: G = __r_arr[103]; - let __v_1000: G = __r_arr[104]; - let __v_1001: G = __r_arr[105]; - let __v_1002: G = __r_arr[106]; - let __v_1003: G = __r_arr[107]; - let __v_1004: G = __r_arr[108]; - let __v_1005: G = __r_arr[109]; - let __v_1006: G = __r_arr[110]; - let __v_1007: G = __r_arr[111]; - let __v_1008: G = __r_arr[112]; - let __v_1009: G = __r_arr[113]; - let __v_1010: G = __r_arr[114]; - let __v_1011: G = __r_arr[115]; - let __v_1012: G = __r_arr[116]; - let __v_1013: G = __r_arr[117]; - let __v_1014: G = __r_arr[118]; - let __v_1015: G = __r_arr[119]; - let __v_1016: G = __r_arr[120]; - let __v_1017: G = __r_arr[121]; - let __v_1018: G = __r_arr[122]; - let __v_1019: G = __r_arr[123]; - let __v_1020: G = __r_arr[124]; - let __v_1021: G = __r_arr[125]; - let __v_1022: G = __r_arr[126]; - let __v_1023: G = __r_arr[127]; - let __v_1024: G = if unconstrained { Bytes2::xor(&__v_896, &__v_928) } else { bytes2_xor_value(__v_896, __v_928, record) }; - let __v_1025: G = if unconstrained { Bytes2::xor(&__v_897, &__v_929) } else { bytes2_xor_value(__v_897, __v_929, record) }; - let __v_1026: G = if unconstrained { Bytes2::xor(&__v_898, &__v_930) } else { bytes2_xor_value(__v_898, __v_930, record) }; - let __v_1027: G = if unconstrained { Bytes2::xor(&__v_899, &__v_931) } else { bytes2_xor_value(__v_899, __v_931, record) }; - let __v_1028: G = if unconstrained { Bytes2::xor(&__v_900, &__v_932) } else { bytes2_xor_value(__v_900, __v_932, record) }; - let __v_1029: G = if unconstrained { Bytes2::xor(&__v_901, &__v_933) } else { bytes2_xor_value(__v_901, __v_933, record) }; - let __v_1030: G = if unconstrained { Bytes2::xor(&__v_902, &__v_934) } else { bytes2_xor_value(__v_902, __v_934, record) }; - let __v_1031: G = if unconstrained { Bytes2::xor(&__v_903, &__v_935) } else { bytes2_xor_value(__v_903, __v_935, record) }; - let __v_1032: G = if unconstrained { Bytes2::xor(&__v_904, &__v_936) } else { bytes2_xor_value(__v_904, __v_936, record) }; - let __v_1033: G = if unconstrained { Bytes2::xor(&__v_905, &__v_937) } else { bytes2_xor_value(__v_905, __v_937, record) }; - let __v_1034: G = if unconstrained { Bytes2::xor(&__v_906, &__v_938) } else { bytes2_xor_value(__v_906, __v_938, record) }; - let __v_1035: G = if unconstrained { Bytes2::xor(&__v_907, &__v_939) } else { bytes2_xor_value(__v_907, __v_939, record) }; - let __v_1036: G = if unconstrained { Bytes2::xor(&__v_908, &__v_940) } else { bytes2_xor_value(__v_908, __v_940, record) }; - let __v_1037: G = if unconstrained { Bytes2::xor(&__v_909, &__v_941) } else { bytes2_xor_value(__v_909, __v_941, record) }; - let __v_1038: G = if unconstrained { Bytes2::xor(&__v_910, &__v_942) } else { bytes2_xor_value(__v_910, __v_942, record) }; - let __v_1039: G = if unconstrained { Bytes2::xor(&__v_911, &__v_943) } else { bytes2_xor_value(__v_911, __v_943, record) }; - let __v_1040: G = if unconstrained { Bytes2::xor(&__v_912, &__v_944) } else { bytes2_xor_value(__v_912, __v_944, record) }; - let __v_1041: G = if unconstrained { Bytes2::xor(&__v_913, &__v_945) } else { bytes2_xor_value(__v_913, __v_945, record) }; - let __v_1042: G = if unconstrained { Bytes2::xor(&__v_914, &__v_946) } else { bytes2_xor_value(__v_914, __v_946, record) }; - let __v_1043: G = if unconstrained { Bytes2::xor(&__v_915, &__v_947) } else { bytes2_xor_value(__v_915, __v_947, record) }; - let __v_1044: G = if unconstrained { Bytes2::xor(&__v_916, &__v_948) } else { bytes2_xor_value(__v_916, __v_948, record) }; - let __v_1045: G = if unconstrained { Bytes2::xor(&__v_917, &__v_949) } else { bytes2_xor_value(__v_917, __v_949, record) }; - let __v_1046: G = if unconstrained { Bytes2::xor(&__v_918, &__v_950) } else { bytes2_xor_value(__v_918, __v_950, record) }; - let __v_1047: G = if unconstrained { Bytes2::xor(&__v_919, &__v_951) } else { bytes2_xor_value(__v_919, __v_951, record) }; - let __v_1048: G = if unconstrained { Bytes2::xor(&__v_920, &__v_952) } else { bytes2_xor_value(__v_920, __v_952, record) }; - let __v_1049: G = if unconstrained { Bytes2::xor(&__v_921, &__v_953) } else { bytes2_xor_value(__v_921, __v_953, record) }; - let __v_1050: G = if unconstrained { Bytes2::xor(&__v_922, &__v_954) } else { bytes2_xor_value(__v_922, __v_954, record) }; - let __v_1051: G = if unconstrained { Bytes2::xor(&__v_923, &__v_955) } else { bytes2_xor_value(__v_923, __v_955, record) }; - let __v_1052: G = if unconstrained { Bytes2::xor(&__v_924, &__v_956) } else { bytes2_xor_value(__v_924, __v_956, record) }; - let __v_1053: G = if unconstrained { Bytes2::xor(&__v_925, &__v_957) } else { bytes2_xor_value(__v_925, __v_957, record) }; - let __v_1054: G = if unconstrained { Bytes2::xor(&__v_926, &__v_958) } else { bytes2_xor_value(__v_926, __v_958, record) }; - let __v_1055: G = if unconstrained { Bytes2::xor(&__v_927, &__v_959) } else { bytes2_xor_value(__v_927, __v_959, record) }; - let __ret: [G; OUT_70] = [__v_1024, __v_1025, __v_1026, __v_1027, __v_1028, __v_1029, __v_1030, __v_1031, __v_1032, __v_1033, __v_1034, __v_1035, __v_1036, __v_1037, __v_1038, __v_1039, __v_1040, __v_1041, __v_1042, __v_1043, __v_1044, __v_1045, __v_1046, __v_1047, __v_1048, __v_1049, __v_1050, __v_1051, __v_1052, __v_1053, __v_1054, __v_1055]; + let __u32_sum: u128 = u128::from(((__v_0.as_canonical_u64() << 0) | (__v_1.as_canonical_u64() << 8) | (__v_2.as_canonical_u64() << 16) | (__v_3.as_canonical_u64() << 24))) + u128::from(((__v_16.as_canonical_u64() << 0) | (__v_17.as_canonical_u64() << 8) | (__v_18.as_canonical_u64() << 16) | (__v_19.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_128: G = G::from_u8(__u32_bytes[0]); + let __v_129: G = G::from_u8(__u32_bytes[1]); + let __v_130: G = G::from_u8(__u32_bytes[2]); + let __v_131: G = G::from_u8(__u32_bytes[3]); + let __v_132: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_128; let __vj = __v_129; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_130; let __vj = __v_131; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_133: G = G::from_u64(1); + let __v_134: G = (__v_132 - __v_133); + let __v_135: G = G::from_u64(2); + let __v_136: G = (__v_132 - __v_135); + let __v_137: G = (__v_134 * __v_136); + let __v_138: G = (__v_132 * __v_137); + let __v_139: G = G::from_u64(0); + if (__v_138 != __v_139) { + return Err(ExecError::AssertEqMismatch { lhs: __v_138.as_canonical_u64(), rhs: __v_139.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_140: G = if unconstrained { Bytes2::xor(&__v_96, &__v_128) } else { bytes2_xor_value(__v_96, __v_128, record) }; + let __v_141: G = if unconstrained { Bytes2::xor(&__v_97, &__v_129) } else { bytes2_xor_value(__v_97, __v_129, record) }; + let __v_142: G = if unconstrained { Bytes2::xor(&__v_98, &__v_130) } else { bytes2_xor_value(__v_98, __v_130, record) }; + let __v_143: G = if unconstrained { Bytes2::xor(&__v_99, &__v_131) } else { bytes2_xor_value(__v_99, __v_131, record) }; + let __u32_sum: u128 = u128::from(((__v_106.as_canonical_u64() << 0) | (__v_107.as_canonical_u64() << 8) | (__v_108.as_canonical_u64() << 16) | (__v_109.as_canonical_u64() << 24))) + u128::from(((__v_142.as_canonical_u64() << 0) | (__v_143.as_canonical_u64() << 8) | (__v_140.as_canonical_u64() << 16) | (__v_141.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_144: G = G::from_u8(__u32_bytes[0]); + let __v_145: G = G::from_u8(__u32_bytes[1]); + let __v_146: G = G::from_u8(__u32_bytes[2]); + let __v_147: G = G::from_u8(__u32_bytes[3]); + let __v_148: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_144; let __vj = __v_145; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_146; let __vj = __v_147; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_149: G = (__v_148 * __v_148); + if (__v_149 != __v_148) { + return Err(ExecError::AssertEqMismatch { lhs: __v_149.as_canonical_u64(), rhs: __v_148.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_16, &__v_144) } else { bytes2_xor_split4_value(__v_16, __v_144, record) }; + let __v_150: G = __b2_out.0; + let __v_151: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_17, &__v_145) } else { bytes2_xor_split4_value(__v_17, __v_145, record) }; + let __v_152: G = __b2_out.0; + let __v_153: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_18, &__v_146) } else { bytes2_xor_split4_value(__v_18, __v_146, record) }; + let __v_154: G = __b2_out.0; + let __v_155: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_19, &__v_147) } else { bytes2_xor_split4_value(__v_19, __v_147, record) }; + let __v_156: G = __b2_out.0; + let __v_157: G = __b2_out.1; + let __v_158: G = (__v_152 + __v_155); + let __v_159: G = (__v_154 + __v_157); + let __v_160: G = (__v_156 + __v_151); + let __v_161: G = (__v_150 + __v_153); + let __u32_sum: u128 = u128::from(((__v_128.as_canonical_u64() << 0) | (__v_129.as_canonical_u64() << 8) | (__v_130.as_canonical_u64() << 16) | (__v_131.as_canonical_u64() << 24))) + u128::from(((__v_158.as_canonical_u64() << 0) | (__v_159.as_canonical_u64() << 8) | (__v_160.as_canonical_u64() << 16) | (__v_161.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_162: G = G::from_u8(__u32_bytes[0]); + let __v_163: G = G::from_u8(__u32_bytes[1]); + let __v_164: G = G::from_u8(__u32_bytes[2]); + let __v_165: G = G::from_u8(__u32_bytes[3]); + let __v_166: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_162; let __vj = __v_163; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_164; let __vj = __v_165; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_167: G = G::from_u64(1); + let __v_168: G = (__v_166 - __v_167); + let __v_169: G = G::from_u64(2); + let __v_170: G = (__v_166 - __v_169); + let __v_171: G = (__v_168 * __v_170); + let __v_172: G = (__v_166 * __v_171); + let __v_173: G = G::from_u64(0); + if (__v_172 != __v_173) { + return Err(ExecError::AssertEqMismatch { lhs: __v_172.as_canonical_u64(), rhs: __v_173.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_174: G = if unconstrained { Bytes2::xor(&__v_142, &__v_162) } else { bytes2_xor_value(__v_142, __v_162, record) }; + let __v_175: G = if unconstrained { Bytes2::xor(&__v_143, &__v_163) } else { bytes2_xor_value(__v_143, __v_163, record) }; + let __v_176: G = if unconstrained { Bytes2::xor(&__v_140, &__v_164) } else { bytes2_xor_value(__v_140, __v_164, record) }; + let __v_177: G = if unconstrained { Bytes2::xor(&__v_141, &__v_165) } else { bytes2_xor_value(__v_141, __v_165, record) }; + let __u32_sum: u128 = u128::from(((__v_144.as_canonical_u64() << 0) | (__v_145.as_canonical_u64() << 8) | (__v_146.as_canonical_u64() << 16) | (__v_147.as_canonical_u64() << 24))) + u128::from(((__v_175.as_canonical_u64() << 0) | (__v_176.as_canonical_u64() << 8) | (__v_177.as_canonical_u64() << 16) | (__v_174.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_178: G = G::from_u8(__u32_bytes[0]); + let __v_179: G = G::from_u8(__u32_bytes[1]); + let __v_180: G = G::from_u8(__u32_bytes[2]); + let __v_181: G = G::from_u8(__u32_bytes[3]); + let __v_182: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_178; let __vj = __v_179; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_180; let __vj = __v_181; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_183: G = (__v_182 * __v_182); + if (__v_183 != __v_182) { + return Err(ExecError::AssertEqMismatch { lhs: __v_183.as_canonical_u64(), rhs: __v_182.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_158, &__v_178) } else { bytes2_xor_split7_value(__v_158, __v_178, record) }; + let __v_184: G = __b2_out.0; + let __v_185: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_159, &__v_179) } else { bytes2_xor_split7_value(__v_159, __v_179, record) }; + let __v_186: G = __b2_out.0; + let __v_187: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_160, &__v_180) } else { bytes2_xor_split7_value(__v_160, __v_180, record) }; + let __v_188: G = __b2_out.0; + let __v_189: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_161, &__v_181) } else { bytes2_xor_split7_value(__v_161, __v_181, record) }; + let __v_190: G = __b2_out.0; + let __v_191: G = __b2_out.1; + let __v_192: G = (__v_184 + __v_187); + let __v_193: G = (__v_186 + __v_189); + let __v_194: G = (__v_188 + __v_191); + let __v_195: G = (__v_190 + __v_185); + let __u32_sum: u128 = u128::from(((__v_4.as_canonical_u64() << 0) | (__v_5.as_canonical_u64() << 8) | (__v_6.as_canonical_u64() << 16) | (__v_7.as_canonical_u64() << 24))) + u128::from(((__v_20.as_canonical_u64() << 0) | (__v_21.as_canonical_u64() << 8) | (__v_22.as_canonical_u64() << 16) | (__v_23.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_196: G = G::from_u8(__u32_bytes[0]); + let __v_197: G = G::from_u8(__u32_bytes[1]); + let __v_198: G = G::from_u8(__u32_bytes[2]); + let __v_199: G = G::from_u8(__u32_bytes[3]); + let __v_200: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_196; let __vj = __v_197; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_198; let __vj = __v_199; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_201: G = G::from_u64(1); + let __v_202: G = (__v_200 - __v_201); + let __v_203: G = G::from_u64(2); + let __v_204: G = (__v_200 - __v_203); + let __v_205: G = (__v_202 * __v_204); + let __v_206: G = (__v_200 * __v_205); + let __v_207: G = G::from_u64(0); + if (__v_206 != __v_207) { + return Err(ExecError::AssertEqMismatch { lhs: __v_206.as_canonical_u64(), rhs: __v_207.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_208: G = if unconstrained { Bytes2::xor(&__v_100, &__v_196) } else { bytes2_xor_value(__v_100, __v_196, record) }; + let __v_209: G = if unconstrained { Bytes2::xor(&__v_101, &__v_197) } else { bytes2_xor_value(__v_101, __v_197, record) }; + let __v_210: G = if unconstrained { Bytes2::xor(&__v_102, &__v_198) } else { bytes2_xor_value(__v_102, __v_198, record) }; + let __v_211: G = if unconstrained { Bytes2::xor(&__v_103, &__v_199) } else { bytes2_xor_value(__v_103, __v_199, record) }; + let __u32_sum: u128 = u128::from(((__v_110.as_canonical_u64() << 0) | (__v_111.as_canonical_u64() << 8) | (__v_112.as_canonical_u64() << 16) | (__v_113.as_canonical_u64() << 24))) + u128::from(((__v_210.as_canonical_u64() << 0) | (__v_211.as_canonical_u64() << 8) | (__v_208.as_canonical_u64() << 16) | (__v_209.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_212: G = G::from_u8(__u32_bytes[0]); + let __v_213: G = G::from_u8(__u32_bytes[1]); + let __v_214: G = G::from_u8(__u32_bytes[2]); + let __v_215: G = G::from_u8(__u32_bytes[3]); + let __v_216: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_212; let __vj = __v_213; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_214; let __vj = __v_215; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_217: G = (__v_216 * __v_216); + if (__v_217 != __v_216) { + return Err(ExecError::AssertEqMismatch { lhs: __v_217.as_canonical_u64(), rhs: __v_216.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_20, &__v_212) } else { bytes2_xor_split4_value(__v_20, __v_212, record) }; + let __v_218: G = __b2_out.0; + let __v_219: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_21, &__v_213) } else { bytes2_xor_split4_value(__v_21, __v_213, record) }; + let __v_220: G = __b2_out.0; + let __v_221: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_22, &__v_214) } else { bytes2_xor_split4_value(__v_22, __v_214, record) }; + let __v_222: G = __b2_out.0; + let __v_223: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_23, &__v_215) } else { bytes2_xor_split4_value(__v_23, __v_215, record) }; + let __v_224: G = __b2_out.0; + let __v_225: G = __b2_out.1; + let __v_226: G = (__v_220 + __v_223); + let __v_227: G = (__v_222 + __v_225); + let __v_228: G = (__v_224 + __v_219); + let __v_229: G = (__v_218 + __v_221); + let __u32_sum: u128 = u128::from(((__v_196.as_canonical_u64() << 0) | (__v_197.as_canonical_u64() << 8) | (__v_198.as_canonical_u64() << 16) | (__v_199.as_canonical_u64() << 24))) + u128::from(((__v_226.as_canonical_u64() << 0) | (__v_227.as_canonical_u64() << 8) | (__v_228.as_canonical_u64() << 16) | (__v_229.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_230: G = G::from_u8(__u32_bytes[0]); + let __v_231: G = G::from_u8(__u32_bytes[1]); + let __v_232: G = G::from_u8(__u32_bytes[2]); + let __v_233: G = G::from_u8(__u32_bytes[3]); + let __v_234: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_230; let __vj = __v_231; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_232; let __vj = __v_233; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_235: G = G::from_u64(1); + let __v_236: G = (__v_234 - __v_235); + let __v_237: G = G::from_u64(2); + let __v_238: G = (__v_234 - __v_237); + let __v_239: G = (__v_236 * __v_238); + let __v_240: G = (__v_234 * __v_239); + let __v_241: G = G::from_u64(0); + if (__v_240 != __v_241) { + return Err(ExecError::AssertEqMismatch { lhs: __v_240.as_canonical_u64(), rhs: __v_241.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_242: G = if unconstrained { Bytes2::xor(&__v_210, &__v_230) } else { bytes2_xor_value(__v_210, __v_230, record) }; + let __v_243: G = if unconstrained { Bytes2::xor(&__v_211, &__v_231) } else { bytes2_xor_value(__v_211, __v_231, record) }; + let __v_244: G = if unconstrained { Bytes2::xor(&__v_208, &__v_232) } else { bytes2_xor_value(__v_208, __v_232, record) }; + let __v_245: G = if unconstrained { Bytes2::xor(&__v_209, &__v_233) } else { bytes2_xor_value(__v_209, __v_233, record) }; + let __u32_sum: u128 = u128::from(((__v_212.as_canonical_u64() << 0) | (__v_213.as_canonical_u64() << 8) | (__v_214.as_canonical_u64() << 16) | (__v_215.as_canonical_u64() << 24))) + u128::from(((__v_243.as_canonical_u64() << 0) | (__v_244.as_canonical_u64() << 8) | (__v_245.as_canonical_u64() << 16) | (__v_242.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_246: G = G::from_u8(__u32_bytes[0]); + let __v_247: G = G::from_u8(__u32_bytes[1]); + let __v_248: G = G::from_u8(__u32_bytes[2]); + let __v_249: G = G::from_u8(__u32_bytes[3]); + let __v_250: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_246; let __vj = __v_247; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_248; let __vj = __v_249; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_251: G = (__v_250 * __v_250); + if (__v_251 != __v_250) { + return Err(ExecError::AssertEqMismatch { lhs: __v_251.as_canonical_u64(), rhs: __v_250.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_226, &__v_246) } else { bytes2_xor_split7_value(__v_226, __v_246, record) }; + let __v_252: G = __b2_out.0; + let __v_253: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_227, &__v_247) } else { bytes2_xor_split7_value(__v_227, __v_247, record) }; + let __v_254: G = __b2_out.0; + let __v_255: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_228, &__v_248) } else { bytes2_xor_split7_value(__v_228, __v_248, record) }; + let __v_256: G = __b2_out.0; + let __v_257: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_229, &__v_249) } else { bytes2_xor_split7_value(__v_229, __v_249, record) }; + let __v_258: G = __b2_out.0; + let __v_259: G = __b2_out.1; + let __v_260: G = (__v_252 + __v_255); + let __v_261: G = (__v_254 + __v_257); + let __v_262: G = (__v_256 + __v_259); + let __v_263: G = (__v_258 + __v_253); + let __u32_sum: u128 = u128::from(((__v_8.as_canonical_u64() << 0) | (__v_9.as_canonical_u64() << 8) | (__v_10.as_canonical_u64() << 16) | (__v_11.as_canonical_u64() << 24))) + u128::from(((__v_24.as_canonical_u64() << 0) | (__v_25.as_canonical_u64() << 8) | (__v_26.as_canonical_u64() << 16) | (__v_27.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_264: G = G::from_u8(__u32_bytes[0]); + let __v_265: G = G::from_u8(__u32_bytes[1]); + let __v_266: G = G::from_u8(__u32_bytes[2]); + let __v_267: G = G::from_u8(__u32_bytes[3]); + let __v_268: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_264; let __vj = __v_265; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_266; let __vj = __v_267; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_269: G = G::from_u64(1); + let __v_270: G = (__v_268 - __v_269); + let __v_271: G = G::from_u64(2); + let __v_272: G = (__v_268 - __v_271); + let __v_273: G = (__v_270 * __v_272); + let __v_274: G = (__v_268 * __v_273); + let __v_275: G = G::from_u64(0); + if (__v_274 != __v_275) { + return Err(ExecError::AssertEqMismatch { lhs: __v_274.as_canonical_u64(), rhs: __v_275.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_276: G = if unconstrained { Bytes2::xor(&__v_104, &__v_264) } else { bytes2_xor_value(__v_104, __v_264, record) }; + let __v_277: G = if unconstrained { Bytes2::xor(&__v_122, &__v_265) } else { bytes2_xor_value(__v_122, __v_265, record) }; + let __v_278: G = if unconstrained { Bytes2::xor(&__v_123, &__v_266) } else { bytes2_xor_value(__v_123, __v_266, record) }; + let __v_279: G = if unconstrained { Bytes2::xor(&__v_124, &__v_267) } else { bytes2_xor_value(__v_124, __v_267, record) }; + let __u32_sum: u128 = u128::from(((__v_114.as_canonical_u64() << 0) | (__v_115.as_canonical_u64() << 8) | (__v_116.as_canonical_u64() << 16) | (__v_117.as_canonical_u64() << 24))) + u128::from(((__v_278.as_canonical_u64() << 0) | (__v_279.as_canonical_u64() << 8) | (__v_276.as_canonical_u64() << 16) | (__v_277.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_280: G = G::from_u8(__u32_bytes[0]); + let __v_281: G = G::from_u8(__u32_bytes[1]); + let __v_282: G = G::from_u8(__u32_bytes[2]); + let __v_283: G = G::from_u8(__u32_bytes[3]); + let __v_284: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_280; let __vj = __v_281; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_282; let __vj = __v_283; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_285: G = (__v_284 * __v_284); + if (__v_285 != __v_284) { + return Err(ExecError::AssertEqMismatch { lhs: __v_285.as_canonical_u64(), rhs: __v_284.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_24, &__v_280) } else { bytes2_xor_split4_value(__v_24, __v_280, record) }; + let __v_286: G = __b2_out.0; + let __v_287: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_25, &__v_281) } else { bytes2_xor_split4_value(__v_25, __v_281, record) }; + let __v_288: G = __b2_out.0; + let __v_289: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_26, &__v_282) } else { bytes2_xor_split4_value(__v_26, __v_282, record) }; + let __v_290: G = __b2_out.0; + let __v_291: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_27, &__v_283) } else { bytes2_xor_split4_value(__v_27, __v_283, record) }; + let __v_292: G = __b2_out.0; + let __v_293: G = __b2_out.1; + let __v_294: G = (__v_288 + __v_291); + let __v_295: G = (__v_290 + __v_293); + let __v_296: G = (__v_292 + __v_287); + let __v_297: G = (__v_286 + __v_289); + let __u32_sum: u128 = u128::from(((__v_264.as_canonical_u64() << 0) | (__v_265.as_canonical_u64() << 8) | (__v_266.as_canonical_u64() << 16) | (__v_267.as_canonical_u64() << 24))) + u128::from(((__v_294.as_canonical_u64() << 0) | (__v_295.as_canonical_u64() << 8) | (__v_296.as_canonical_u64() << 16) | (__v_297.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_298: G = G::from_u8(__u32_bytes[0]); + let __v_299: G = G::from_u8(__u32_bytes[1]); + let __v_300: G = G::from_u8(__u32_bytes[2]); + let __v_301: G = G::from_u8(__u32_bytes[3]); + let __v_302: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_298; let __vj = __v_299; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_300; let __vj = __v_301; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_303: G = G::from_u64(1); + let __v_304: G = (__v_302 - __v_303); + let __v_305: G = G::from_u64(2); + let __v_306: G = (__v_302 - __v_305); + let __v_307: G = (__v_304 * __v_306); + let __v_308: G = (__v_302 * __v_307); + let __v_309: G = G::from_u64(0); + if (__v_308 != __v_309) { + return Err(ExecError::AssertEqMismatch { lhs: __v_308.as_canonical_u64(), rhs: __v_309.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_310: G = if unconstrained { Bytes2::xor(&__v_278, &__v_298) } else { bytes2_xor_value(__v_278, __v_298, record) }; + let __v_311: G = if unconstrained { Bytes2::xor(&__v_279, &__v_299) } else { bytes2_xor_value(__v_279, __v_299, record) }; + let __v_312: G = if unconstrained { Bytes2::xor(&__v_276, &__v_300) } else { bytes2_xor_value(__v_276, __v_300, record) }; + let __v_313: G = if unconstrained { Bytes2::xor(&__v_277, &__v_301) } else { bytes2_xor_value(__v_277, __v_301, record) }; + let __u32_sum: u128 = u128::from(((__v_280.as_canonical_u64() << 0) | (__v_281.as_canonical_u64() << 8) | (__v_282.as_canonical_u64() << 16) | (__v_283.as_canonical_u64() << 24))) + u128::from(((__v_311.as_canonical_u64() << 0) | (__v_312.as_canonical_u64() << 8) | (__v_313.as_canonical_u64() << 16) | (__v_310.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_314: G = G::from_u8(__u32_bytes[0]); + let __v_315: G = G::from_u8(__u32_bytes[1]); + let __v_316: G = G::from_u8(__u32_bytes[2]); + let __v_317: G = G::from_u8(__u32_bytes[3]); + let __v_318: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_314; let __vj = __v_315; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_316; let __vj = __v_317; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_319: G = (__v_318 * __v_318); + if (__v_319 != __v_318) { + return Err(ExecError::AssertEqMismatch { lhs: __v_319.as_canonical_u64(), rhs: __v_318.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_294, &__v_314) } else { bytes2_xor_split7_value(__v_294, __v_314, record) }; + let __v_320: G = __b2_out.0; + let __v_321: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_295, &__v_315) } else { bytes2_xor_split7_value(__v_295, __v_315, record) }; + let __v_322: G = __b2_out.0; + let __v_323: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_296, &__v_316) } else { bytes2_xor_split7_value(__v_296, __v_316, record) }; + let __v_324: G = __b2_out.0; + let __v_325: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_297, &__v_317) } else { bytes2_xor_split7_value(__v_297, __v_317, record) }; + let __v_326: G = __b2_out.0; + let __v_327: G = __b2_out.1; + let __v_328: G = (__v_320 + __v_323); + let __v_329: G = (__v_322 + __v_325); + let __v_330: G = (__v_324 + __v_327); + let __v_331: G = (__v_326 + __v_321); + let __u32_sum: u128 = u128::from(((__v_12.as_canonical_u64() << 0) | (__v_13.as_canonical_u64() << 8) | (__v_14.as_canonical_u64() << 16) | (__v_15.as_canonical_u64() << 24))) + u128::from(((__v_28.as_canonical_u64() << 0) | (__v_29.as_canonical_u64() << 8) | (__v_30.as_canonical_u64() << 16) | (__v_31.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_332: G = G::from_u8(__u32_bytes[0]); + let __v_333: G = G::from_u8(__u32_bytes[1]); + let __v_334: G = G::from_u8(__u32_bytes[2]); + let __v_335: G = G::from_u8(__u32_bytes[3]); + let __v_336: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_332; let __vj = __v_333; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_334; let __vj = __v_335; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_337: G = G::from_u64(1); + let __v_338: G = (__v_336 - __v_337); + let __v_339: G = G::from_u64(2); + let __v_340: G = (__v_336 - __v_339); + let __v_341: G = (__v_338 * __v_340); + let __v_342: G = (__v_336 * __v_341); + let __v_343: G = G::from_u64(0); + if (__v_342 != __v_343) { + return Err(ExecError::AssertEqMismatch { lhs: __v_342.as_canonical_u64(), rhs: __v_343.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_344: G = if unconstrained { Bytes2::xor(&__v_105, &__v_332) } else { bytes2_xor_value(__v_105, __v_332, record) }; + let __v_345: G = if unconstrained { Bytes2::xor(&__v_125, &__v_333) } else { bytes2_xor_value(__v_125, __v_333, record) }; + let __v_346: G = if unconstrained { Bytes2::xor(&__v_126, &__v_334) } else { bytes2_xor_value(__v_126, __v_334, record) }; + let __v_347: G = if unconstrained { Bytes2::xor(&__v_127, &__v_335) } else { bytes2_xor_value(__v_127, __v_335, record) }; + let __u32_sum: u128 = u128::from(((__v_118.as_canonical_u64() << 0) | (__v_119.as_canonical_u64() << 8) | (__v_120.as_canonical_u64() << 16) | (__v_121.as_canonical_u64() << 24))) + u128::from(((__v_346.as_canonical_u64() << 0) | (__v_347.as_canonical_u64() << 8) | (__v_344.as_canonical_u64() << 16) | (__v_345.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_348: G = G::from_u8(__u32_bytes[0]); + let __v_349: G = G::from_u8(__u32_bytes[1]); + let __v_350: G = G::from_u8(__u32_bytes[2]); + let __v_351: G = G::from_u8(__u32_bytes[3]); + let __v_352: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_348; let __vj = __v_349; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_350; let __vj = __v_351; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_353: G = (__v_352 * __v_352); + if (__v_353 != __v_352) { + return Err(ExecError::AssertEqMismatch { lhs: __v_353.as_canonical_u64(), rhs: __v_352.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_28, &__v_348) } else { bytes2_xor_split4_value(__v_28, __v_348, record) }; + let __v_354: G = __b2_out.0; + let __v_355: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_29, &__v_349) } else { bytes2_xor_split4_value(__v_29, __v_349, record) }; + let __v_356: G = __b2_out.0; + let __v_357: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_30, &__v_350) } else { bytes2_xor_split4_value(__v_30, __v_350, record) }; + let __v_358: G = __b2_out.0; + let __v_359: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_31, &__v_351) } else { bytes2_xor_split4_value(__v_31, __v_351, record) }; + let __v_360: G = __b2_out.0; + let __v_361: G = __b2_out.1; + let __v_362: G = (__v_356 + __v_359); + let __v_363: G = (__v_358 + __v_361); + let __v_364: G = (__v_360 + __v_355); + let __v_365: G = (__v_354 + __v_357); + let __u32_sum: u128 = u128::from(((__v_332.as_canonical_u64() << 0) | (__v_333.as_canonical_u64() << 8) | (__v_334.as_canonical_u64() << 16) | (__v_335.as_canonical_u64() << 24))) + u128::from(((__v_362.as_canonical_u64() << 0) | (__v_363.as_canonical_u64() << 8) | (__v_364.as_canonical_u64() << 16) | (__v_365.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_366: G = G::from_u8(__u32_bytes[0]); + let __v_367: G = G::from_u8(__u32_bytes[1]); + let __v_368: G = G::from_u8(__u32_bytes[2]); + let __v_369: G = G::from_u8(__u32_bytes[3]); + let __v_370: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_366; let __vj = __v_367; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_368; let __vj = __v_369; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_371: G = G::from_u64(1); + let __v_372: G = (__v_370 - __v_371); + let __v_373: G = G::from_u64(2); + let __v_374: G = (__v_370 - __v_373); + let __v_375: G = (__v_372 * __v_374); + let __v_376: G = (__v_370 * __v_375); + let __v_377: G = G::from_u64(0); + if (__v_376 != __v_377) { + return Err(ExecError::AssertEqMismatch { lhs: __v_376.as_canonical_u64(), rhs: __v_377.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_378: G = if unconstrained { Bytes2::xor(&__v_346, &__v_366) } else { bytes2_xor_value(__v_346, __v_366, record) }; + let __v_379: G = if unconstrained { Bytes2::xor(&__v_347, &__v_367) } else { bytes2_xor_value(__v_347, __v_367, record) }; + let __v_380: G = if unconstrained { Bytes2::xor(&__v_344, &__v_368) } else { bytes2_xor_value(__v_344, __v_368, record) }; + let __v_381: G = if unconstrained { Bytes2::xor(&__v_345, &__v_369) } else { bytes2_xor_value(__v_345, __v_369, record) }; + let __u32_sum: u128 = u128::from(((__v_348.as_canonical_u64() << 0) | (__v_349.as_canonical_u64() << 8) | (__v_350.as_canonical_u64() << 16) | (__v_351.as_canonical_u64() << 24))) + u128::from(((__v_379.as_canonical_u64() << 0) | (__v_380.as_canonical_u64() << 8) | (__v_381.as_canonical_u64() << 16) | (__v_378.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_382: G = G::from_u8(__u32_bytes[0]); + let __v_383: G = G::from_u8(__u32_bytes[1]); + let __v_384: G = G::from_u8(__u32_bytes[2]); + let __v_385: G = G::from_u8(__u32_bytes[3]); + let __v_386: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_382; let __vj = __v_383; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_384; let __vj = __v_385; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_387: G = (__v_386 * __v_386); + if (__v_387 != __v_386) { + return Err(ExecError::AssertEqMismatch { lhs: __v_387.as_canonical_u64(), rhs: __v_386.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_362, &__v_382) } else { bytes2_xor_split7_value(__v_362, __v_382, record) }; + let __v_388: G = __b2_out.0; + let __v_389: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_363, &__v_383) } else { bytes2_xor_split7_value(__v_363, __v_383, record) }; + let __v_390: G = __b2_out.0; + let __v_391: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_364, &__v_384) } else { bytes2_xor_split7_value(__v_364, __v_384, record) }; + let __v_392: G = __b2_out.0; + let __v_393: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_365, &__v_385) } else { bytes2_xor_split7_value(__v_365, __v_385, record) }; + let __v_394: G = __b2_out.0; + let __v_395: G = __b2_out.1; + let __v_396: G = (__v_388 + __v_391); + let __v_397: G = (__v_390 + __v_393); + let __v_398: G = (__v_392 + __v_395); + let __v_399: G = (__v_394 + __v_389); + let __u32_sum: u128 = u128::from(((__v_162.as_canonical_u64() << 0) | (__v_163.as_canonical_u64() << 8) | (__v_164.as_canonical_u64() << 16) | (__v_165.as_canonical_u64() << 24))) + u128::from(((__v_260.as_canonical_u64() << 0) | (__v_261.as_canonical_u64() << 8) | (__v_262.as_canonical_u64() << 16) | (__v_263.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_400: G = G::from_u8(__u32_bytes[0]); + let __v_401: G = G::from_u8(__u32_bytes[1]); + let __v_402: G = G::from_u8(__u32_bytes[2]); + let __v_403: G = G::from_u8(__u32_bytes[3]); + let __v_404: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_400; let __vj = __v_401; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_402; let __vj = __v_403; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_405: G = G::from_u64(1); + let __v_406: G = (__v_404 - __v_405); + let __v_407: G = G::from_u64(2); + let __v_408: G = (__v_404 - __v_407); + let __v_409: G = (__v_406 * __v_408); + let __v_410: G = (__v_404 * __v_409); + let __v_411: G = G::from_u64(0); + if (__v_410 != __v_411) { + return Err(ExecError::AssertEqMismatch { lhs: __v_410.as_canonical_u64(), rhs: __v_411.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_412: G = if unconstrained { Bytes2::xor(&__v_379, &__v_400) } else { bytes2_xor_value(__v_379, __v_400, record) }; + let __v_413: G = if unconstrained { Bytes2::xor(&__v_380, &__v_401) } else { bytes2_xor_value(__v_380, __v_401, record) }; + let __v_414: G = if unconstrained { Bytes2::xor(&__v_381, &__v_402) } else { bytes2_xor_value(__v_381, __v_402, record) }; + let __v_415: G = if unconstrained { Bytes2::xor(&__v_378, &__v_403) } else { bytes2_xor_value(__v_378, __v_403, record) }; + let __u32_sum: u128 = u128::from(((__v_314.as_canonical_u64() << 0) | (__v_315.as_canonical_u64() << 8) | (__v_316.as_canonical_u64() << 16) | (__v_317.as_canonical_u64() << 24))) + u128::from(((__v_414.as_canonical_u64() << 0) | (__v_415.as_canonical_u64() << 8) | (__v_412.as_canonical_u64() << 16) | (__v_413.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_416: G = G::from_u8(__u32_bytes[0]); + let __v_417: G = G::from_u8(__u32_bytes[1]); + let __v_418: G = G::from_u8(__u32_bytes[2]); + let __v_419: G = G::from_u8(__u32_bytes[3]); + let __v_420: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_416; let __vj = __v_417; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_418; let __vj = __v_419; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_421: G = (__v_420 * __v_420); + if (__v_421 != __v_420) { + return Err(ExecError::AssertEqMismatch { lhs: __v_421.as_canonical_u64(), rhs: __v_420.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_260, &__v_416) } else { bytes2_xor_split4_value(__v_260, __v_416, record) }; + let __v_422: G = __b2_out.0; + let __v_423: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_261, &__v_417) } else { bytes2_xor_split4_value(__v_261, __v_417, record) }; + let __v_424: G = __b2_out.0; + let __v_425: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_262, &__v_418) } else { bytes2_xor_split4_value(__v_262, __v_418, record) }; + let __v_426: G = __b2_out.0; + let __v_427: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_263, &__v_419) } else { bytes2_xor_split4_value(__v_263, __v_419, record) }; + let __v_428: G = __b2_out.0; + let __v_429: G = __b2_out.1; + let __v_430: G = (__v_424 + __v_427); + let __v_431: G = (__v_426 + __v_429); + let __v_432: G = (__v_428 + __v_423); + let __v_433: G = (__v_422 + __v_425); + let __u32_sum: u128 = u128::from(((__v_400.as_canonical_u64() << 0) | (__v_401.as_canonical_u64() << 8) | (__v_402.as_canonical_u64() << 16) | (__v_403.as_canonical_u64() << 24))) + u128::from(((__v_430.as_canonical_u64() << 0) | (__v_431.as_canonical_u64() << 8) | (__v_432.as_canonical_u64() << 16) | (__v_433.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_434: G = G::from_u8(__u32_bytes[0]); + let __v_435: G = G::from_u8(__u32_bytes[1]); + let __v_436: G = G::from_u8(__u32_bytes[2]); + let __v_437: G = G::from_u8(__u32_bytes[3]); + let __v_438: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_434; let __vj = __v_435; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_436; let __vj = __v_437; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_439: G = G::from_u64(1); + let __v_440: G = (__v_438 - __v_439); + let __v_441: G = G::from_u64(2); + let __v_442: G = (__v_438 - __v_441); + let __v_443: G = (__v_440 * __v_442); + let __v_444: G = (__v_438 * __v_443); + let __v_445: G = G::from_u64(0); + if (__v_444 != __v_445) { + return Err(ExecError::AssertEqMismatch { lhs: __v_444.as_canonical_u64(), rhs: __v_445.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_446: G = if unconstrained { Bytes2::xor(&__v_414, &__v_434) } else { bytes2_xor_value(__v_414, __v_434, record) }; + let __v_447: G = if unconstrained { Bytes2::xor(&__v_415, &__v_435) } else { bytes2_xor_value(__v_415, __v_435, record) }; + let __v_448: G = if unconstrained { Bytes2::xor(&__v_412, &__v_436) } else { bytes2_xor_value(__v_412, __v_436, record) }; + let __v_449: G = if unconstrained { Bytes2::xor(&__v_413, &__v_437) } else { bytes2_xor_value(__v_413, __v_437, record) }; + let __u32_sum: u128 = u128::from(((__v_416.as_canonical_u64() << 0) | (__v_417.as_canonical_u64() << 8) | (__v_418.as_canonical_u64() << 16) | (__v_419.as_canonical_u64() << 24))) + u128::from(((__v_447.as_canonical_u64() << 0) | (__v_448.as_canonical_u64() << 8) | (__v_449.as_canonical_u64() << 16) | (__v_446.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_450: G = G::from_u8(__u32_bytes[0]); + let __v_451: G = G::from_u8(__u32_bytes[1]); + let __v_452: G = G::from_u8(__u32_bytes[2]); + let __v_453: G = G::from_u8(__u32_bytes[3]); + let __v_454: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_450; let __vj = __v_451; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_452; let __vj = __v_453; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_455: G = (__v_454 * __v_454); + if (__v_455 != __v_454) { + return Err(ExecError::AssertEqMismatch { lhs: __v_455.as_canonical_u64(), rhs: __v_454.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_430, &__v_450) } else { bytes2_xor_split7_value(__v_430, __v_450, record) }; + let __v_456: G = __b2_out.0; + let __v_457: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_431, &__v_451) } else { bytes2_xor_split7_value(__v_431, __v_451, record) }; + let __v_458: G = __b2_out.0; + let __v_459: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_432, &__v_452) } else { bytes2_xor_split7_value(__v_432, __v_452, record) }; + let __v_460: G = __b2_out.0; + let __v_461: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_433, &__v_453) } else { bytes2_xor_split7_value(__v_433, __v_453, record) }; + let __v_462: G = __b2_out.0; + let __v_463: G = __b2_out.1; + let __v_464: G = (__v_456 + __v_459); + let __v_465: G = (__v_458 + __v_461); + let __v_466: G = (__v_460 + __v_463); + let __v_467: G = (__v_462 + __v_457); + let __u32_sum: u128 = u128::from(((__v_230.as_canonical_u64() << 0) | (__v_231.as_canonical_u64() << 8) | (__v_232.as_canonical_u64() << 16) | (__v_233.as_canonical_u64() << 24))) + u128::from(((__v_328.as_canonical_u64() << 0) | (__v_329.as_canonical_u64() << 8) | (__v_330.as_canonical_u64() << 16) | (__v_331.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_468: G = G::from_u8(__u32_bytes[0]); + let __v_469: G = G::from_u8(__u32_bytes[1]); + let __v_470: G = G::from_u8(__u32_bytes[2]); + let __v_471: G = G::from_u8(__u32_bytes[3]); + let __v_472: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_468; let __vj = __v_469; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_470; let __vj = __v_471; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_473: G = G::from_u64(1); + let __v_474: G = (__v_472 - __v_473); + let __v_475: G = G::from_u64(2); + let __v_476: G = (__v_472 - __v_475); + let __v_477: G = (__v_474 * __v_476); + let __v_478: G = (__v_472 * __v_477); + let __v_479: G = G::from_u64(0); + if (__v_478 != __v_479) { + return Err(ExecError::AssertEqMismatch { lhs: __v_478.as_canonical_u64(), rhs: __v_479.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_480: G = if unconstrained { Bytes2::xor(&__v_175, &__v_468) } else { bytes2_xor_value(__v_175, __v_468, record) }; + let __v_481: G = if unconstrained { Bytes2::xor(&__v_176, &__v_469) } else { bytes2_xor_value(__v_176, __v_469, record) }; + let __v_482: G = if unconstrained { Bytes2::xor(&__v_177, &__v_470) } else { bytes2_xor_value(__v_177, __v_470, record) }; + let __v_483: G = if unconstrained { Bytes2::xor(&__v_174, &__v_471) } else { bytes2_xor_value(__v_174, __v_471, record) }; + let __u32_sum: u128 = u128::from(((__v_382.as_canonical_u64() << 0) | (__v_383.as_canonical_u64() << 8) | (__v_384.as_canonical_u64() << 16) | (__v_385.as_canonical_u64() << 24))) + u128::from(((__v_482.as_canonical_u64() << 0) | (__v_483.as_canonical_u64() << 8) | (__v_480.as_canonical_u64() << 16) | (__v_481.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_484: G = G::from_u8(__u32_bytes[0]); + let __v_485: G = G::from_u8(__u32_bytes[1]); + let __v_486: G = G::from_u8(__u32_bytes[2]); + let __v_487: G = G::from_u8(__u32_bytes[3]); + let __v_488: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_484; let __vj = __v_485; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_486; let __vj = __v_487; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_489: G = (__v_488 * __v_488); + if (__v_489 != __v_488) { + return Err(ExecError::AssertEqMismatch { lhs: __v_489.as_canonical_u64(), rhs: __v_488.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_328, &__v_484) } else { bytes2_xor_split4_value(__v_328, __v_484, record) }; + let __v_490: G = __b2_out.0; + let __v_491: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_329, &__v_485) } else { bytes2_xor_split4_value(__v_329, __v_485, record) }; + let __v_492: G = __b2_out.0; + let __v_493: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_330, &__v_486) } else { bytes2_xor_split4_value(__v_330, __v_486, record) }; + let __v_494: G = __b2_out.0; + let __v_495: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_331, &__v_487) } else { bytes2_xor_split4_value(__v_331, __v_487, record) }; + let __v_496: G = __b2_out.0; + let __v_497: G = __b2_out.1; + let __v_498: G = (__v_492 + __v_495); + let __v_499: G = (__v_494 + __v_497); + let __v_500: G = (__v_496 + __v_491); + let __v_501: G = (__v_490 + __v_493); + let __u32_sum: u128 = u128::from(((__v_468.as_canonical_u64() << 0) | (__v_469.as_canonical_u64() << 8) | (__v_470.as_canonical_u64() << 16) | (__v_471.as_canonical_u64() << 24))) + u128::from(((__v_498.as_canonical_u64() << 0) | (__v_499.as_canonical_u64() << 8) | (__v_500.as_canonical_u64() << 16) | (__v_501.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_502: G = G::from_u8(__u32_bytes[0]); + let __v_503: G = G::from_u8(__u32_bytes[1]); + let __v_504: G = G::from_u8(__u32_bytes[2]); + let __v_505: G = G::from_u8(__u32_bytes[3]); + let __v_506: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_502; let __vj = __v_503; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_504; let __vj = __v_505; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_507: G = G::from_u64(1); + let __v_508: G = (__v_506 - __v_507); + let __v_509: G = G::from_u64(2); + let __v_510: G = (__v_506 - __v_509); + let __v_511: G = (__v_508 * __v_510); + let __v_512: G = (__v_506 * __v_511); + let __v_513: G = G::from_u64(0); + if (__v_512 != __v_513) { + return Err(ExecError::AssertEqMismatch { lhs: __v_512.as_canonical_u64(), rhs: __v_513.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_514: G = if unconstrained { Bytes2::xor(&__v_482, &__v_502) } else { bytes2_xor_value(__v_482, __v_502, record) }; + let __v_515: G = if unconstrained { Bytes2::xor(&__v_483, &__v_503) } else { bytes2_xor_value(__v_483, __v_503, record) }; + let __v_516: G = if unconstrained { Bytes2::xor(&__v_480, &__v_504) } else { bytes2_xor_value(__v_480, __v_504, record) }; + let __v_517: G = if unconstrained { Bytes2::xor(&__v_481, &__v_505) } else { bytes2_xor_value(__v_481, __v_505, record) }; + let __u32_sum: u128 = u128::from(((__v_484.as_canonical_u64() << 0) | (__v_485.as_canonical_u64() << 8) | (__v_486.as_canonical_u64() << 16) | (__v_487.as_canonical_u64() << 24))) + u128::from(((__v_515.as_canonical_u64() << 0) | (__v_516.as_canonical_u64() << 8) | (__v_517.as_canonical_u64() << 16) | (__v_514.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_518: G = G::from_u8(__u32_bytes[0]); + let __v_519: G = G::from_u8(__u32_bytes[1]); + let __v_520: G = G::from_u8(__u32_bytes[2]); + let __v_521: G = G::from_u8(__u32_bytes[3]); + let __v_522: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_518; let __vj = __v_519; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_520; let __vj = __v_521; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_523: G = (__v_522 * __v_522); + if (__v_523 != __v_522) { + return Err(ExecError::AssertEqMismatch { lhs: __v_523.as_canonical_u64(), rhs: __v_522.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_498, &__v_518) } else { bytes2_xor_split7_value(__v_498, __v_518, record) }; + let __v_524: G = __b2_out.0; + let __v_525: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_499, &__v_519) } else { bytes2_xor_split7_value(__v_499, __v_519, record) }; + let __v_526: G = __b2_out.0; + let __v_527: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_500, &__v_520) } else { bytes2_xor_split7_value(__v_500, __v_520, record) }; + let __v_528: G = __b2_out.0; + let __v_529: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_501, &__v_521) } else { bytes2_xor_split7_value(__v_501, __v_521, record) }; + let __v_530: G = __b2_out.0; + let __v_531: G = __b2_out.1; + let __v_532: G = (__v_524 + __v_527); + let __v_533: G = (__v_526 + __v_529); + let __v_534: G = (__v_528 + __v_531); + let __v_535: G = (__v_530 + __v_525); + let __u32_sum: u128 = u128::from(((__v_298.as_canonical_u64() << 0) | (__v_299.as_canonical_u64() << 8) | (__v_300.as_canonical_u64() << 16) | (__v_301.as_canonical_u64() << 24))) + u128::from(((__v_396.as_canonical_u64() << 0) | (__v_397.as_canonical_u64() << 8) | (__v_398.as_canonical_u64() << 16) | (__v_399.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_536: G = G::from_u8(__u32_bytes[0]); + let __v_537: G = G::from_u8(__u32_bytes[1]); + let __v_538: G = G::from_u8(__u32_bytes[2]); + let __v_539: G = G::from_u8(__u32_bytes[3]); + let __v_540: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_536; let __vj = __v_537; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_538; let __vj = __v_539; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_541: G = G::from_u64(1); + let __v_542: G = (__v_540 - __v_541); + let __v_543: G = G::from_u64(2); + let __v_544: G = (__v_540 - __v_543); + let __v_545: G = (__v_542 * __v_544); + let __v_546: G = (__v_540 * __v_545); + let __v_547: G = G::from_u64(0); + if (__v_546 != __v_547) { + return Err(ExecError::AssertEqMismatch { lhs: __v_546.as_canonical_u64(), rhs: __v_547.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_548: G = if unconstrained { Bytes2::xor(&__v_243, &__v_536) } else { bytes2_xor_value(__v_243, __v_536, record) }; + let __v_549: G = if unconstrained { Bytes2::xor(&__v_244, &__v_537) } else { bytes2_xor_value(__v_244, __v_537, record) }; + let __v_550: G = if unconstrained { Bytes2::xor(&__v_245, &__v_538) } else { bytes2_xor_value(__v_245, __v_538, record) }; + let __v_551: G = if unconstrained { Bytes2::xor(&__v_242, &__v_539) } else { bytes2_xor_value(__v_242, __v_539, record) }; + let __u32_sum: u128 = u128::from(((__v_178.as_canonical_u64() << 0) | (__v_179.as_canonical_u64() << 8) | (__v_180.as_canonical_u64() << 16) | (__v_181.as_canonical_u64() << 24))) + u128::from(((__v_550.as_canonical_u64() << 0) | (__v_551.as_canonical_u64() << 8) | (__v_548.as_canonical_u64() << 16) | (__v_549.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_552: G = G::from_u8(__u32_bytes[0]); + let __v_553: G = G::from_u8(__u32_bytes[1]); + let __v_554: G = G::from_u8(__u32_bytes[2]); + let __v_555: G = G::from_u8(__u32_bytes[3]); + let __v_556: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_552; let __vj = __v_553; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_554; let __vj = __v_555; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_557: G = (__v_556 * __v_556); + if (__v_557 != __v_556) { + return Err(ExecError::AssertEqMismatch { lhs: __v_557.as_canonical_u64(), rhs: __v_556.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_396, &__v_552) } else { bytes2_xor_split4_value(__v_396, __v_552, record) }; + let __v_558: G = __b2_out.0; + let __v_559: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_397, &__v_553) } else { bytes2_xor_split4_value(__v_397, __v_553, record) }; + let __v_560: G = __b2_out.0; + let __v_561: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_398, &__v_554) } else { bytes2_xor_split4_value(__v_398, __v_554, record) }; + let __v_562: G = __b2_out.0; + let __v_563: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_399, &__v_555) } else { bytes2_xor_split4_value(__v_399, __v_555, record) }; + let __v_564: G = __b2_out.0; + let __v_565: G = __b2_out.1; + let __v_566: G = (__v_560 + __v_563); + let __v_567: G = (__v_562 + __v_565); + let __v_568: G = (__v_564 + __v_559); + let __v_569: G = (__v_558 + __v_561); + let __u32_sum: u128 = u128::from(((__v_536.as_canonical_u64() << 0) | (__v_537.as_canonical_u64() << 8) | (__v_538.as_canonical_u64() << 16) | (__v_539.as_canonical_u64() << 24))) + u128::from(((__v_566.as_canonical_u64() << 0) | (__v_567.as_canonical_u64() << 8) | (__v_568.as_canonical_u64() << 16) | (__v_569.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_570: G = G::from_u8(__u32_bytes[0]); + let __v_571: G = G::from_u8(__u32_bytes[1]); + let __v_572: G = G::from_u8(__u32_bytes[2]); + let __v_573: G = G::from_u8(__u32_bytes[3]); + let __v_574: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_570; let __vj = __v_571; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_572; let __vj = __v_573; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_575: G = G::from_u64(1); + let __v_576: G = (__v_574 - __v_575); + let __v_577: G = G::from_u64(2); + let __v_578: G = (__v_574 - __v_577); + let __v_579: G = (__v_576 * __v_578); + let __v_580: G = (__v_574 * __v_579); + let __v_581: G = G::from_u64(0); + if (__v_580 != __v_581) { + return Err(ExecError::AssertEqMismatch { lhs: __v_580.as_canonical_u64(), rhs: __v_581.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_582: G = if unconstrained { Bytes2::xor(&__v_550, &__v_570) } else { bytes2_xor_value(__v_550, __v_570, record) }; + let __v_583: G = if unconstrained { Bytes2::xor(&__v_551, &__v_571) } else { bytes2_xor_value(__v_551, __v_571, record) }; + let __v_584: G = if unconstrained { Bytes2::xor(&__v_548, &__v_572) } else { bytes2_xor_value(__v_548, __v_572, record) }; + let __v_585: G = if unconstrained { Bytes2::xor(&__v_549, &__v_573) } else { bytes2_xor_value(__v_549, __v_573, record) }; + let __u32_sum: u128 = u128::from(((__v_552.as_canonical_u64() << 0) | (__v_553.as_canonical_u64() << 8) | (__v_554.as_canonical_u64() << 16) | (__v_555.as_canonical_u64() << 24))) + u128::from(((__v_583.as_canonical_u64() << 0) | (__v_584.as_canonical_u64() << 8) | (__v_585.as_canonical_u64() << 16) | (__v_582.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_586: G = G::from_u8(__u32_bytes[0]); + let __v_587: G = G::from_u8(__u32_bytes[1]); + let __v_588: G = G::from_u8(__u32_bytes[2]); + let __v_589: G = G::from_u8(__u32_bytes[3]); + let __v_590: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_586; let __vj = __v_587; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_588; let __vj = __v_589; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_591: G = (__v_590 * __v_590); + if (__v_591 != __v_590) { + return Err(ExecError::AssertEqMismatch { lhs: __v_591.as_canonical_u64(), rhs: __v_590.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_566, &__v_586) } else { bytes2_xor_split7_value(__v_566, __v_586, record) }; + let __v_592: G = __b2_out.0; + let __v_593: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_567, &__v_587) } else { bytes2_xor_split7_value(__v_567, __v_587, record) }; + let __v_594: G = __b2_out.0; + let __v_595: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_568, &__v_588) } else { bytes2_xor_split7_value(__v_568, __v_588, record) }; + let __v_596: G = __b2_out.0; + let __v_597: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_569, &__v_589) } else { bytes2_xor_split7_value(__v_569, __v_589, record) }; + let __v_598: G = __b2_out.0; + let __v_599: G = __b2_out.1; + let __v_600: G = (__v_592 + __v_595); + let __v_601: G = (__v_594 + __v_597); + let __v_602: G = (__v_596 + __v_599); + let __v_603: G = (__v_598 + __v_593); + let __u32_sum: u128 = u128::from(((__v_366.as_canonical_u64() << 0) | (__v_367.as_canonical_u64() << 8) | (__v_368.as_canonical_u64() << 16) | (__v_369.as_canonical_u64() << 24))) + u128::from(((__v_192.as_canonical_u64() << 0) | (__v_193.as_canonical_u64() << 8) | (__v_194.as_canonical_u64() << 16) | (__v_195.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_604: G = G::from_u8(__u32_bytes[0]); + let __v_605: G = G::from_u8(__u32_bytes[1]); + let __v_606: G = G::from_u8(__u32_bytes[2]); + let __v_607: G = G::from_u8(__u32_bytes[3]); + let __v_608: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_604; let __vj = __v_605; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_606; let __vj = __v_607; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_609: G = G::from_u64(1); + let __v_610: G = (__v_608 - __v_609); + let __v_611: G = G::from_u64(2); + let __v_612: G = (__v_608 - __v_611); + let __v_613: G = (__v_610 * __v_612); + let __v_614: G = (__v_608 * __v_613); + let __v_615: G = G::from_u64(0); + if (__v_614 != __v_615) { + return Err(ExecError::AssertEqMismatch { lhs: __v_614.as_canonical_u64(), rhs: __v_615.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_616: G = if unconstrained { Bytes2::xor(&__v_311, &__v_604) } else { bytes2_xor_value(__v_311, __v_604, record) }; + let __v_617: G = if unconstrained { Bytes2::xor(&__v_312, &__v_605) } else { bytes2_xor_value(__v_312, __v_605, record) }; + let __v_618: G = if unconstrained { Bytes2::xor(&__v_313, &__v_606) } else { bytes2_xor_value(__v_313, __v_606, record) }; + let __v_619: G = if unconstrained { Bytes2::xor(&__v_310, &__v_607) } else { bytes2_xor_value(__v_310, __v_607, record) }; + let __u32_sum: u128 = u128::from(((__v_246.as_canonical_u64() << 0) | (__v_247.as_canonical_u64() << 8) | (__v_248.as_canonical_u64() << 16) | (__v_249.as_canonical_u64() << 24))) + u128::from(((__v_618.as_canonical_u64() << 0) | (__v_619.as_canonical_u64() << 8) | (__v_616.as_canonical_u64() << 16) | (__v_617.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_620: G = G::from_u8(__u32_bytes[0]); + let __v_621: G = G::from_u8(__u32_bytes[1]); + let __v_622: G = G::from_u8(__u32_bytes[2]); + let __v_623: G = G::from_u8(__u32_bytes[3]); + let __v_624: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_620; let __vj = __v_621; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_622; let __vj = __v_623; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_625: G = (__v_624 * __v_624); + if (__v_625 != __v_624) { + return Err(ExecError::AssertEqMismatch { lhs: __v_625.as_canonical_u64(), rhs: __v_624.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_192, &__v_620) } else { bytes2_xor_split4_value(__v_192, __v_620, record) }; + let __v_626: G = __b2_out.0; + let __v_627: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_193, &__v_621) } else { bytes2_xor_split4_value(__v_193, __v_621, record) }; + let __v_628: G = __b2_out.0; + let __v_629: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_194, &__v_622) } else { bytes2_xor_split4_value(__v_194, __v_622, record) }; + let __v_630: G = __b2_out.0; + let __v_631: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_195, &__v_623) } else { bytes2_xor_split4_value(__v_195, __v_623, record) }; + let __v_632: G = __b2_out.0; + let __v_633: G = __b2_out.1; + let __v_634: G = (__v_628 + __v_631); + let __v_635: G = (__v_630 + __v_633); + let __v_636: G = (__v_632 + __v_627); + let __v_637: G = (__v_626 + __v_629); + let __u32_sum: u128 = u128::from(((__v_604.as_canonical_u64() << 0) | (__v_605.as_canonical_u64() << 8) | (__v_606.as_canonical_u64() << 16) | (__v_607.as_canonical_u64() << 24))) + u128::from(((__v_634.as_canonical_u64() << 0) | (__v_635.as_canonical_u64() << 8) | (__v_636.as_canonical_u64() << 16) | (__v_637.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_638: G = G::from_u8(__u32_bytes[0]); + let __v_639: G = G::from_u8(__u32_bytes[1]); + let __v_640: G = G::from_u8(__u32_bytes[2]); + let __v_641: G = G::from_u8(__u32_bytes[3]); + let __v_642: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_638; let __vj = __v_639; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_640; let __vj = __v_641; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_643: G = G::from_u64(1); + let __v_644: G = (__v_642 - __v_643); + let __v_645: G = G::from_u64(2); + let __v_646: G = (__v_642 - __v_645); + let __v_647: G = (__v_644 * __v_646); + let __v_648: G = (__v_642 * __v_647); + let __v_649: G = G::from_u64(0); + if (__v_648 != __v_649) { + return Err(ExecError::AssertEqMismatch { lhs: __v_648.as_canonical_u64(), rhs: __v_649.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_650: G = if unconstrained { Bytes2::xor(&__v_618, &__v_638) } else { bytes2_xor_value(__v_618, __v_638, record) }; + let __v_651: G = if unconstrained { Bytes2::xor(&__v_619, &__v_639) } else { bytes2_xor_value(__v_619, __v_639, record) }; + let __v_652: G = if unconstrained { Bytes2::xor(&__v_616, &__v_640) } else { bytes2_xor_value(__v_616, __v_640, record) }; + let __v_653: G = if unconstrained { Bytes2::xor(&__v_617, &__v_641) } else { bytes2_xor_value(__v_617, __v_641, record) }; + let __u32_sum: u128 = u128::from(((__v_620.as_canonical_u64() << 0) | (__v_621.as_canonical_u64() << 8) | (__v_622.as_canonical_u64() << 16) | (__v_623.as_canonical_u64() << 24))) + u128::from(((__v_651.as_canonical_u64() << 0) | (__v_652.as_canonical_u64() << 8) | (__v_653.as_canonical_u64() << 16) | (__v_650.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_654: G = G::from_u8(__u32_bytes[0]); + let __v_655: G = G::from_u8(__u32_bytes[1]); + let __v_656: G = G::from_u8(__u32_bytes[2]); + let __v_657: G = G::from_u8(__u32_bytes[3]); + let __v_658: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_654; let __vj = __v_655; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_656; let __vj = __v_657; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_659: G = (__v_658 * __v_658); + if (__v_659 != __v_658) { + return Err(ExecError::AssertEqMismatch { lhs: __v_659.as_canonical_u64(), rhs: __v_658.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_634, &__v_654) } else { bytes2_xor_split7_value(__v_634, __v_654, record) }; + let __v_660: G = __b2_out.0; + let __v_661: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_635, &__v_655) } else { bytes2_xor_split7_value(__v_635, __v_655, record) }; + let __v_662: G = __b2_out.0; + let __v_663: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_636, &__v_656) } else { bytes2_xor_split7_value(__v_636, __v_656, record) }; + let __v_664: G = __b2_out.0; + let __v_665: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_637, &__v_657) } else { bytes2_xor_split7_value(__v_637, __v_657, record) }; + let __v_666: G = __b2_out.0; + let __v_667: G = __b2_out.1; + let __v_668: G = (__v_660 + __v_663); + let __v_669: G = (__v_662 + __v_665); + let __v_670: G = (__v_664 + __v_667); + let __v_671: G = (__v_666 + __v_661); + let __u32_sum: u128 = u128::from(((__v_434.as_canonical_u64() << 0) | (__v_435.as_canonical_u64() << 8) | (__v_436.as_canonical_u64() << 16) | (__v_437.as_canonical_u64() << 24))) + u128::from(((__v_668.as_canonical_u64() << 0) | (__v_669.as_canonical_u64() << 8) | (__v_670.as_canonical_u64() << 16) | (__v_671.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_672: G = G::from_u8(__u32_bytes[0]); + let __v_673: G = G::from_u8(__u32_bytes[1]); + let __v_674: G = G::from_u8(__u32_bytes[2]); + let __v_675: G = G::from_u8(__u32_bytes[3]); + let __v_676: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_672; let __vj = __v_673; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_674; let __vj = __v_675; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_677: G = G::from_u64(1); + let __v_678: G = (__v_676 - __v_677); + let __v_679: G = G::from_u64(2); + let __v_680: G = (__v_676 - __v_679); + let __v_681: G = (__v_678 * __v_680); + let __v_682: G = (__v_676 * __v_681); + let __v_683: G = G::from_u64(0); + if (__v_682 != __v_683) { + return Err(ExecError::AssertEqMismatch { lhs: __v_682.as_canonical_u64(), rhs: __v_683.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_684: G = if unconstrained { Bytes2::xor(&__v_515, &__v_672) } else { bytes2_xor_value(__v_515, __v_672, record) }; + let __v_685: G = if unconstrained { Bytes2::xor(&__v_516, &__v_673) } else { bytes2_xor_value(__v_516, __v_673, record) }; + let __v_686: G = if unconstrained { Bytes2::xor(&__v_517, &__v_674) } else { bytes2_xor_value(__v_517, __v_674, record) }; + let __v_687: G = if unconstrained { Bytes2::xor(&__v_514, &__v_675) } else { bytes2_xor_value(__v_514, __v_675, record) }; + let __u32_sum: u128 = u128::from(((__v_586.as_canonical_u64() << 0) | (__v_587.as_canonical_u64() << 8) | (__v_588.as_canonical_u64() << 16) | (__v_589.as_canonical_u64() << 24))) + u128::from(((__v_686.as_canonical_u64() << 0) | (__v_687.as_canonical_u64() << 8) | (__v_684.as_canonical_u64() << 16) | (__v_685.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_688: G = G::from_u8(__u32_bytes[0]); + let __v_689: G = G::from_u8(__u32_bytes[1]); + let __v_690: G = G::from_u8(__u32_bytes[2]); + let __v_691: G = G::from_u8(__u32_bytes[3]); + let __v_692: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_688; let __vj = __v_689; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_690; let __vj = __v_691; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_693: G = (__v_692 * __v_692); + if (__v_693 != __v_692) { + return Err(ExecError::AssertEqMismatch { lhs: __v_693.as_canonical_u64(), rhs: __v_692.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_668, &__v_688) } else { bytes2_xor_split4_value(__v_668, __v_688, record) }; + let __v_694: G = __b2_out.0; + let __v_695: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_669, &__v_689) } else { bytes2_xor_split4_value(__v_669, __v_689, record) }; + let __v_696: G = __b2_out.0; + let __v_697: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_670, &__v_690) } else { bytes2_xor_split4_value(__v_670, __v_690, record) }; + let __v_698: G = __b2_out.0; + let __v_699: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_671, &__v_691) } else { bytes2_xor_split4_value(__v_671, __v_691, record) }; + let __v_700: G = __b2_out.0; + let __v_701: G = __b2_out.1; + let __v_702: G = (__v_696 + __v_699); + let __v_703: G = (__v_698 + __v_701); + let __v_704: G = (__v_700 + __v_695); + let __v_705: G = (__v_694 + __v_697); + let __u32_sum: u128 = u128::from(((__v_672.as_canonical_u64() << 0) | (__v_673.as_canonical_u64() << 8) | (__v_674.as_canonical_u64() << 16) | (__v_675.as_canonical_u64() << 24))) + u128::from(((__v_702.as_canonical_u64() << 0) | (__v_703.as_canonical_u64() << 8) | (__v_704.as_canonical_u64() << 16) | (__v_705.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_706: G = G::from_u8(__u32_bytes[0]); + let __v_707: G = G::from_u8(__u32_bytes[1]); + let __v_708: G = G::from_u8(__u32_bytes[2]); + let __v_709: G = G::from_u8(__u32_bytes[3]); + let __v_710: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_706; let __vj = __v_707; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_708; let __vj = __v_709; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_711: G = G::from_u64(1); + let __v_712: G = (__v_710 - __v_711); + let __v_713: G = G::from_u64(2); + let __v_714: G = (__v_710 - __v_713); + let __v_715: G = (__v_712 * __v_714); + let __v_716: G = (__v_710 * __v_715); + let __v_717: G = G::from_u64(0); + if (__v_716 != __v_717) { + return Err(ExecError::AssertEqMismatch { lhs: __v_716.as_canonical_u64(), rhs: __v_717.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_718: G = if unconstrained { Bytes2::xor(&__v_686, &__v_706) } else { bytes2_xor_value(__v_686, __v_706, record) }; + let __v_719: G = if unconstrained { Bytes2::xor(&__v_687, &__v_707) } else { bytes2_xor_value(__v_687, __v_707, record) }; + let __v_720: G = if unconstrained { Bytes2::xor(&__v_684, &__v_708) } else { bytes2_xor_value(__v_684, __v_708, record) }; + let __v_721: G = if unconstrained { Bytes2::xor(&__v_685, &__v_709) } else { bytes2_xor_value(__v_685, __v_709, record) }; + let __u32_sum: u128 = u128::from(((__v_688.as_canonical_u64() << 0) | (__v_689.as_canonical_u64() << 8) | (__v_690.as_canonical_u64() << 16) | (__v_691.as_canonical_u64() << 24))) + u128::from(((__v_719.as_canonical_u64() << 0) | (__v_720.as_canonical_u64() << 8) | (__v_721.as_canonical_u64() << 16) | (__v_718.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_722: G = G::from_u8(__u32_bytes[0]); + let __v_723: G = G::from_u8(__u32_bytes[1]); + let __v_724: G = G::from_u8(__u32_bytes[2]); + let __v_725: G = G::from_u8(__u32_bytes[3]); + let __v_726: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_722; let __vj = __v_723; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_724; let __vj = __v_725; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_727: G = (__v_726 * __v_726); + if (__v_727 != __v_726) { + return Err(ExecError::AssertEqMismatch { lhs: __v_727.as_canonical_u64(), rhs: __v_726.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_702, &__v_722) } else { bytes2_xor_split7_value(__v_702, __v_722, record) }; + let __v_728: G = __b2_out.0; + let __v_729: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_703, &__v_723) } else { bytes2_xor_split7_value(__v_703, __v_723, record) }; + let __v_730: G = __b2_out.0; + let __v_731: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_704, &__v_724) } else { bytes2_xor_split7_value(__v_704, __v_724, record) }; + let __v_732: G = __b2_out.0; + let __v_733: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_705, &__v_725) } else { bytes2_xor_split7_value(__v_705, __v_725, record) }; + let __v_734: G = __b2_out.0; + let __v_735: G = __b2_out.1; + let __v_736: G = (__v_728 + __v_731); + let __v_737: G = (__v_730 + __v_733); + let __v_738: G = (__v_732 + __v_735); + let __v_739: G = (__v_734 + __v_729); + let __u32_sum: u128 = u128::from(((__v_502.as_canonical_u64() << 0) | (__v_503.as_canonical_u64() << 8) | (__v_504.as_canonical_u64() << 16) | (__v_505.as_canonical_u64() << 24))) + u128::from(((__v_464.as_canonical_u64() << 0) | (__v_465.as_canonical_u64() << 8) | (__v_466.as_canonical_u64() << 16) | (__v_467.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_740: G = G::from_u8(__u32_bytes[0]); + let __v_741: G = G::from_u8(__u32_bytes[1]); + let __v_742: G = G::from_u8(__u32_bytes[2]); + let __v_743: G = G::from_u8(__u32_bytes[3]); + let __v_744: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_740; let __vj = __v_741; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_742; let __vj = __v_743; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_745: G = G::from_u64(1); + let __v_746: G = (__v_744 - __v_745); + let __v_747: G = G::from_u64(2); + let __v_748: G = (__v_744 - __v_747); + let __v_749: G = (__v_746 * __v_748); + let __v_750: G = (__v_744 * __v_749); + let __v_751: G = G::from_u64(0); + if (__v_750 != __v_751) { + return Err(ExecError::AssertEqMismatch { lhs: __v_750.as_canonical_u64(), rhs: __v_751.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_752: G = if unconstrained { Bytes2::xor(&__v_583, &__v_740) } else { bytes2_xor_value(__v_583, __v_740, record) }; + let __v_753: G = if unconstrained { Bytes2::xor(&__v_584, &__v_741) } else { bytes2_xor_value(__v_584, __v_741, record) }; + let __v_754: G = if unconstrained { Bytes2::xor(&__v_585, &__v_742) } else { bytes2_xor_value(__v_585, __v_742, record) }; + let __v_755: G = if unconstrained { Bytes2::xor(&__v_582, &__v_743) } else { bytes2_xor_value(__v_582, __v_743, record) }; + let __u32_sum: u128 = u128::from(((__v_654.as_canonical_u64() << 0) | (__v_655.as_canonical_u64() << 8) | (__v_656.as_canonical_u64() << 16) | (__v_657.as_canonical_u64() << 24))) + u128::from(((__v_754.as_canonical_u64() << 0) | (__v_755.as_canonical_u64() << 8) | (__v_752.as_canonical_u64() << 16) | (__v_753.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_756: G = G::from_u8(__u32_bytes[0]); + let __v_757: G = G::from_u8(__u32_bytes[1]); + let __v_758: G = G::from_u8(__u32_bytes[2]); + let __v_759: G = G::from_u8(__u32_bytes[3]); + let __v_760: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_756; let __vj = __v_757; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_758; let __vj = __v_759; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_761: G = (__v_760 * __v_760); + if (__v_761 != __v_760) { + return Err(ExecError::AssertEqMismatch { lhs: __v_761.as_canonical_u64(), rhs: __v_760.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_464, &__v_756) } else { bytes2_xor_split4_value(__v_464, __v_756, record) }; + let __v_762: G = __b2_out.0; + let __v_763: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_465, &__v_757) } else { bytes2_xor_split4_value(__v_465, __v_757, record) }; + let __v_764: G = __b2_out.0; + let __v_765: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_466, &__v_758) } else { bytes2_xor_split4_value(__v_466, __v_758, record) }; + let __v_766: G = __b2_out.0; + let __v_767: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_467, &__v_759) } else { bytes2_xor_split4_value(__v_467, __v_759, record) }; + let __v_768: G = __b2_out.0; + let __v_769: G = __b2_out.1; + let __v_770: G = (__v_764 + __v_767); + let __v_771: G = (__v_766 + __v_769); + let __v_772: G = (__v_768 + __v_763); + let __v_773: G = (__v_762 + __v_765); + let __u32_sum: u128 = u128::from(((__v_740.as_canonical_u64() << 0) | (__v_741.as_canonical_u64() << 8) | (__v_742.as_canonical_u64() << 16) | (__v_743.as_canonical_u64() << 24))) + u128::from(((__v_770.as_canonical_u64() << 0) | (__v_771.as_canonical_u64() << 8) | (__v_772.as_canonical_u64() << 16) | (__v_773.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_774: G = G::from_u8(__u32_bytes[0]); + let __v_775: G = G::from_u8(__u32_bytes[1]); + let __v_776: G = G::from_u8(__u32_bytes[2]); + let __v_777: G = G::from_u8(__u32_bytes[3]); + let __v_778: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_774; let __vj = __v_775; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_776; let __vj = __v_777; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_779: G = G::from_u64(1); + let __v_780: G = (__v_778 - __v_779); + let __v_781: G = G::from_u64(2); + let __v_782: G = (__v_778 - __v_781); + let __v_783: G = (__v_780 * __v_782); + let __v_784: G = (__v_778 * __v_783); + let __v_785: G = G::from_u64(0); + if (__v_784 != __v_785) { + return Err(ExecError::AssertEqMismatch { lhs: __v_784.as_canonical_u64(), rhs: __v_785.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_786: G = if unconstrained { Bytes2::xor(&__v_754, &__v_774) } else { bytes2_xor_value(__v_754, __v_774, record) }; + let __v_787: G = if unconstrained { Bytes2::xor(&__v_755, &__v_775) } else { bytes2_xor_value(__v_755, __v_775, record) }; + let __v_788: G = if unconstrained { Bytes2::xor(&__v_752, &__v_776) } else { bytes2_xor_value(__v_752, __v_776, record) }; + let __v_789: G = if unconstrained { Bytes2::xor(&__v_753, &__v_777) } else { bytes2_xor_value(__v_753, __v_777, record) }; + let __u32_sum: u128 = u128::from(((__v_756.as_canonical_u64() << 0) | (__v_757.as_canonical_u64() << 8) | (__v_758.as_canonical_u64() << 16) | (__v_759.as_canonical_u64() << 24))) + u128::from(((__v_787.as_canonical_u64() << 0) | (__v_788.as_canonical_u64() << 8) | (__v_789.as_canonical_u64() << 16) | (__v_786.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_790: G = G::from_u8(__u32_bytes[0]); + let __v_791: G = G::from_u8(__u32_bytes[1]); + let __v_792: G = G::from_u8(__u32_bytes[2]); + let __v_793: G = G::from_u8(__u32_bytes[3]); + let __v_794: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_790; let __vj = __v_791; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_792; let __vj = __v_793; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_795: G = (__v_794 * __v_794); + if (__v_795 != __v_794) { + return Err(ExecError::AssertEqMismatch { lhs: __v_795.as_canonical_u64(), rhs: __v_794.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_770, &__v_790) } else { bytes2_xor_split7_value(__v_770, __v_790, record) }; + let __v_796: G = __b2_out.0; + let __v_797: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_771, &__v_791) } else { bytes2_xor_split7_value(__v_771, __v_791, record) }; + let __v_798: G = __b2_out.0; + let __v_799: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_772, &__v_792) } else { bytes2_xor_split7_value(__v_772, __v_792, record) }; + let __v_800: G = __b2_out.0; + let __v_801: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_773, &__v_793) } else { bytes2_xor_split7_value(__v_773, __v_793, record) }; + let __v_802: G = __b2_out.0; + let __v_803: G = __b2_out.1; + let __v_804: G = (__v_796 + __v_799); + let __v_805: G = (__v_798 + __v_801); + let __v_806: G = (__v_800 + __v_803); + let __v_807: G = (__v_802 + __v_797); + let __u32_sum: u128 = u128::from(((__v_570.as_canonical_u64() << 0) | (__v_571.as_canonical_u64() << 8) | (__v_572.as_canonical_u64() << 16) | (__v_573.as_canonical_u64() << 24))) + u128::from(((__v_532.as_canonical_u64() << 0) | (__v_533.as_canonical_u64() << 8) | (__v_534.as_canonical_u64() << 16) | (__v_535.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_808: G = G::from_u8(__u32_bytes[0]); + let __v_809: G = G::from_u8(__u32_bytes[1]); + let __v_810: G = G::from_u8(__u32_bytes[2]); + let __v_811: G = G::from_u8(__u32_bytes[3]); + let __v_812: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_808; let __vj = __v_809; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_810; let __vj = __v_811; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_813: G = G::from_u64(1); + let __v_814: G = (__v_812 - __v_813); + let __v_815: G = G::from_u64(2); + let __v_816: G = (__v_812 - __v_815); + let __v_817: G = (__v_814 * __v_816); + let __v_818: G = (__v_812 * __v_817); + let __v_819: G = G::from_u64(0); + if (__v_818 != __v_819) { + return Err(ExecError::AssertEqMismatch { lhs: __v_818.as_canonical_u64(), rhs: __v_819.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_820: G = if unconstrained { Bytes2::xor(&__v_651, &__v_808) } else { bytes2_xor_value(__v_651, __v_808, record) }; + let __v_821: G = if unconstrained { Bytes2::xor(&__v_652, &__v_809) } else { bytes2_xor_value(__v_652, __v_809, record) }; + let __v_822: G = if unconstrained { Bytes2::xor(&__v_653, &__v_810) } else { bytes2_xor_value(__v_653, __v_810, record) }; + let __v_823: G = if unconstrained { Bytes2::xor(&__v_650, &__v_811) } else { bytes2_xor_value(__v_650, __v_811, record) }; + let __u32_sum: u128 = u128::from(((__v_450.as_canonical_u64() << 0) | (__v_451.as_canonical_u64() << 8) | (__v_452.as_canonical_u64() << 16) | (__v_453.as_canonical_u64() << 24))) + u128::from(((__v_822.as_canonical_u64() << 0) | (__v_823.as_canonical_u64() << 8) | (__v_820.as_canonical_u64() << 16) | (__v_821.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_824: G = G::from_u8(__u32_bytes[0]); + let __v_825: G = G::from_u8(__u32_bytes[1]); + let __v_826: G = G::from_u8(__u32_bytes[2]); + let __v_827: G = G::from_u8(__u32_bytes[3]); + let __v_828: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_824; let __vj = __v_825; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_826; let __vj = __v_827; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_829: G = (__v_828 * __v_828); + if (__v_829 != __v_828) { + return Err(ExecError::AssertEqMismatch { lhs: __v_829.as_canonical_u64(), rhs: __v_828.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_532, &__v_824) } else { bytes2_xor_split4_value(__v_532, __v_824, record) }; + let __v_830: G = __b2_out.0; + let __v_831: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_533, &__v_825) } else { bytes2_xor_split4_value(__v_533, __v_825, record) }; + let __v_832: G = __b2_out.0; + let __v_833: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_534, &__v_826) } else { bytes2_xor_split4_value(__v_534, __v_826, record) }; + let __v_834: G = __b2_out.0; + let __v_835: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_535, &__v_827) } else { bytes2_xor_split4_value(__v_535, __v_827, record) }; + let __v_836: G = __b2_out.0; + let __v_837: G = __b2_out.1; + let __v_838: G = (__v_832 + __v_835); + let __v_839: G = (__v_834 + __v_837); + let __v_840: G = (__v_836 + __v_831); + let __v_841: G = (__v_830 + __v_833); + let __u32_sum: u128 = u128::from(((__v_808.as_canonical_u64() << 0) | (__v_809.as_canonical_u64() << 8) | (__v_810.as_canonical_u64() << 16) | (__v_811.as_canonical_u64() << 24))) + u128::from(((__v_838.as_canonical_u64() << 0) | (__v_839.as_canonical_u64() << 8) | (__v_840.as_canonical_u64() << 16) | (__v_841.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_842: G = G::from_u8(__u32_bytes[0]); + let __v_843: G = G::from_u8(__u32_bytes[1]); + let __v_844: G = G::from_u8(__u32_bytes[2]); + let __v_845: G = G::from_u8(__u32_bytes[3]); + let __v_846: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_842; let __vj = __v_843; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_844; let __vj = __v_845; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_847: G = G::from_u64(1); + let __v_848: G = (__v_846 - __v_847); + let __v_849: G = G::from_u64(2); + let __v_850: G = (__v_846 - __v_849); + let __v_851: G = (__v_848 * __v_850); + let __v_852: G = (__v_846 * __v_851); + let __v_853: G = G::from_u64(0); + if (__v_852 != __v_853) { + return Err(ExecError::AssertEqMismatch { lhs: __v_852.as_canonical_u64(), rhs: __v_853.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_854: G = if unconstrained { Bytes2::xor(&__v_822, &__v_842) } else { bytes2_xor_value(__v_822, __v_842, record) }; + let __v_855: G = if unconstrained { Bytes2::xor(&__v_823, &__v_843) } else { bytes2_xor_value(__v_823, __v_843, record) }; + let __v_856: G = if unconstrained { Bytes2::xor(&__v_820, &__v_844) } else { bytes2_xor_value(__v_820, __v_844, record) }; + let __v_857: G = if unconstrained { Bytes2::xor(&__v_821, &__v_845) } else { bytes2_xor_value(__v_821, __v_845, record) }; + let __u32_sum: u128 = u128::from(((__v_824.as_canonical_u64() << 0) | (__v_825.as_canonical_u64() << 8) | (__v_826.as_canonical_u64() << 16) | (__v_827.as_canonical_u64() << 24))) + u128::from(((__v_855.as_canonical_u64() << 0) | (__v_856.as_canonical_u64() << 8) | (__v_857.as_canonical_u64() << 16) | (__v_854.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_858: G = G::from_u8(__u32_bytes[0]); + let __v_859: G = G::from_u8(__u32_bytes[1]); + let __v_860: G = G::from_u8(__u32_bytes[2]); + let __v_861: G = G::from_u8(__u32_bytes[3]); + let __v_862: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_858; let __vj = __v_859; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_860; let __vj = __v_861; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_863: G = (__v_862 * __v_862); + if (__v_863 != __v_862) { + return Err(ExecError::AssertEqMismatch { lhs: __v_863.as_canonical_u64(), rhs: __v_862.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_838, &__v_858) } else { bytes2_xor_split7_value(__v_838, __v_858, record) }; + let __v_864: G = __b2_out.0; + let __v_865: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_839, &__v_859) } else { bytes2_xor_split7_value(__v_839, __v_859, record) }; + let __v_866: G = __b2_out.0; + let __v_867: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_840, &__v_860) } else { bytes2_xor_split7_value(__v_840, __v_860, record) }; + let __v_868: G = __b2_out.0; + let __v_869: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_841, &__v_861) } else { bytes2_xor_split7_value(__v_841, __v_861, record) }; + let __v_870: G = __b2_out.0; + let __v_871: G = __b2_out.1; + let __v_872: G = (__v_864 + __v_867); + let __v_873: G = (__v_866 + __v_869); + let __v_874: G = (__v_868 + __v_871); + let __v_875: G = (__v_870 + __v_865); + let __u32_sum: u128 = u128::from(((__v_638.as_canonical_u64() << 0) | (__v_639.as_canonical_u64() << 8) | (__v_640.as_canonical_u64() << 16) | (__v_641.as_canonical_u64() << 24))) + u128::from(((__v_600.as_canonical_u64() << 0) | (__v_601.as_canonical_u64() << 8) | (__v_602.as_canonical_u64() << 16) | (__v_603.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_876: G = G::from_u8(__u32_bytes[0]); + let __v_877: G = G::from_u8(__u32_bytes[1]); + let __v_878: G = G::from_u8(__u32_bytes[2]); + let __v_879: G = G::from_u8(__u32_bytes[3]); + let __v_880: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_876; let __vj = __v_877; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_878; let __vj = __v_879; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_881: G = G::from_u64(1); + let __v_882: G = (__v_880 - __v_881); + let __v_883: G = G::from_u64(2); + let __v_884: G = (__v_880 - __v_883); + let __v_885: G = (__v_882 * __v_884); + let __v_886: G = (__v_880 * __v_885); + let __v_887: G = G::from_u64(0); + if (__v_886 != __v_887) { + return Err(ExecError::AssertEqMismatch { lhs: __v_886.as_canonical_u64(), rhs: __v_887.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_888: G = if unconstrained { Bytes2::xor(&__v_447, &__v_876) } else { bytes2_xor_value(__v_447, __v_876, record) }; + let __v_889: G = if unconstrained { Bytes2::xor(&__v_448, &__v_877) } else { bytes2_xor_value(__v_448, __v_877, record) }; + let __v_890: G = if unconstrained { Bytes2::xor(&__v_449, &__v_878) } else { bytes2_xor_value(__v_449, __v_878, record) }; + let __v_891: G = if unconstrained { Bytes2::xor(&__v_446, &__v_879) } else { bytes2_xor_value(__v_446, __v_879, record) }; + let __u32_sum: u128 = u128::from(((__v_518.as_canonical_u64() << 0) | (__v_519.as_canonical_u64() << 8) | (__v_520.as_canonical_u64() << 16) | (__v_521.as_canonical_u64() << 24))) + u128::from(((__v_890.as_canonical_u64() << 0) | (__v_891.as_canonical_u64() << 8) | (__v_888.as_canonical_u64() << 16) | (__v_889.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_892: G = G::from_u8(__u32_bytes[0]); + let __v_893: G = G::from_u8(__u32_bytes[1]); + let __v_894: G = G::from_u8(__u32_bytes[2]); + let __v_895: G = G::from_u8(__u32_bytes[3]); + let __v_896: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_892; let __vj = __v_893; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_894; let __vj = __v_895; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_897: G = (__v_896 * __v_896); + if (__v_897 != __v_896) { + return Err(ExecError::AssertEqMismatch { lhs: __v_897.as_canonical_u64(), rhs: __v_896.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_600, &__v_892) } else { bytes2_xor_split4_value(__v_600, __v_892, record) }; + let __v_898: G = __b2_out.0; + let __v_899: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_601, &__v_893) } else { bytes2_xor_split4_value(__v_601, __v_893, record) }; + let __v_900: G = __b2_out.0; + let __v_901: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_602, &__v_894) } else { bytes2_xor_split4_value(__v_602, __v_894, record) }; + let __v_902: G = __b2_out.0; + let __v_903: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_603, &__v_895) } else { bytes2_xor_split4_value(__v_603, __v_895, record) }; + let __v_904: G = __b2_out.0; + let __v_905: G = __b2_out.1; + let __v_906: G = (__v_900 + __v_903); + let __v_907: G = (__v_902 + __v_905); + let __v_908: G = (__v_904 + __v_899); + let __v_909: G = (__v_898 + __v_901); + let __u32_sum: u128 = u128::from(((__v_876.as_canonical_u64() << 0) | (__v_877.as_canonical_u64() << 8) | (__v_878.as_canonical_u64() << 16) | (__v_879.as_canonical_u64() << 24))) + u128::from(((__v_906.as_canonical_u64() << 0) | (__v_907.as_canonical_u64() << 8) | (__v_908.as_canonical_u64() << 16) | (__v_909.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_910: G = G::from_u8(__u32_bytes[0]); + let __v_911: G = G::from_u8(__u32_bytes[1]); + let __v_912: G = G::from_u8(__u32_bytes[2]); + let __v_913: G = G::from_u8(__u32_bytes[3]); + let __v_914: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_910; let __vj = __v_911; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_912; let __vj = __v_913; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_915: G = G::from_u64(1); + let __v_916: G = (__v_914 - __v_915); + let __v_917: G = G::from_u64(2); + let __v_918: G = (__v_914 - __v_917); + let __v_919: G = (__v_916 * __v_918); + let __v_920: G = (__v_914 * __v_919); + let __v_921: G = G::from_u64(0); + if (__v_920 != __v_921) { + return Err(ExecError::AssertEqMismatch { lhs: __v_920.as_canonical_u64(), rhs: __v_921.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_922: G = if unconstrained { Bytes2::xor(&__v_890, &__v_910) } else { bytes2_xor_value(__v_890, __v_910, record) }; + let __v_923: G = if unconstrained { Bytes2::xor(&__v_891, &__v_911) } else { bytes2_xor_value(__v_891, __v_911, record) }; + let __v_924: G = if unconstrained { Bytes2::xor(&__v_888, &__v_912) } else { bytes2_xor_value(__v_888, __v_912, record) }; + let __v_925: G = if unconstrained { Bytes2::xor(&__v_889, &__v_913) } else { bytes2_xor_value(__v_889, __v_913, record) }; + let __u32_sum: u128 = u128::from(((__v_892.as_canonical_u64() << 0) | (__v_893.as_canonical_u64() << 8) | (__v_894.as_canonical_u64() << 16) | (__v_895.as_canonical_u64() << 24))) + u128::from(((__v_923.as_canonical_u64() << 0) | (__v_924.as_canonical_u64() << 8) | (__v_925.as_canonical_u64() << 16) | (__v_922.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_926: G = G::from_u8(__u32_bytes[0]); + let __v_927: G = G::from_u8(__u32_bytes[1]); + let __v_928: G = G::from_u8(__u32_bytes[2]); + let __v_929: G = G::from_u8(__u32_bytes[3]); + let __v_930: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_926; let __vj = __v_927; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_928; let __vj = __v_929; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_931: G = (__v_930 * __v_930); + if (__v_931 != __v_930) { + return Err(ExecError::AssertEqMismatch { lhs: __v_931.as_canonical_u64(), rhs: __v_930.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_906, &__v_926) } else { bytes2_xor_split7_value(__v_906, __v_926, record) }; + let __v_932: G = __b2_out.0; + let __v_933: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_907, &__v_927) } else { bytes2_xor_split7_value(__v_907, __v_927, record) }; + let __v_934: G = __b2_out.0; + let __v_935: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_908, &__v_928) } else { bytes2_xor_split7_value(__v_908, __v_928, record) }; + let __v_936: G = __b2_out.0; + let __v_937: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_909, &__v_929) } else { bytes2_xor_split7_value(__v_909, __v_929, record) }; + let __v_938: G = __b2_out.0; + let __v_939: G = __b2_out.1; + let __v_940: G = (__v_932 + __v_935); + let __v_941: G = (__v_934 + __v_937); + let __v_942: G = (__v_936 + __v_939); + let __v_943: G = (__v_938 + __v_933); + let __u32_sum: u128 = u128::from(((__v_706.as_canonical_u64() << 0) | (__v_707.as_canonical_u64() << 8) | (__v_708.as_canonical_u64() << 16) | (__v_709.as_canonical_u64() << 24))) + u128::from(((__v_804.as_canonical_u64() << 0) | (__v_805.as_canonical_u64() << 8) | (__v_806.as_canonical_u64() << 16) | (__v_807.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_944: G = G::from_u8(__u32_bytes[0]); + let __v_945: G = G::from_u8(__u32_bytes[1]); + let __v_946: G = G::from_u8(__u32_bytes[2]); + let __v_947: G = G::from_u8(__u32_bytes[3]); + let __v_948: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_944; let __vj = __v_945; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_946; let __vj = __v_947; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_949: G = G::from_u64(1); + let __v_950: G = (__v_948 - __v_949); + let __v_951: G = G::from_u64(2); + let __v_952: G = (__v_948 - __v_951); + let __v_953: G = (__v_950 * __v_952); + let __v_954: G = (__v_948 * __v_953); + let __v_955: G = G::from_u64(0); + if (__v_954 != __v_955) { + return Err(ExecError::AssertEqMismatch { lhs: __v_954.as_canonical_u64(), rhs: __v_955.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_956: G = if unconstrained { Bytes2::xor(&__v_923, &__v_944) } else { bytes2_xor_value(__v_923, __v_944, record) }; + let __v_957: G = if unconstrained { Bytes2::xor(&__v_924, &__v_945) } else { bytes2_xor_value(__v_924, __v_945, record) }; + let __v_958: G = if unconstrained { Bytes2::xor(&__v_925, &__v_946) } else { bytes2_xor_value(__v_925, __v_946, record) }; + let __v_959: G = if unconstrained { Bytes2::xor(&__v_922, &__v_947) } else { bytes2_xor_value(__v_922, __v_947, record) }; + let __u32_sum: u128 = u128::from(((__v_858.as_canonical_u64() << 0) | (__v_859.as_canonical_u64() << 8) | (__v_860.as_canonical_u64() << 16) | (__v_861.as_canonical_u64() << 24))) + u128::from(((__v_958.as_canonical_u64() << 0) | (__v_959.as_canonical_u64() << 8) | (__v_956.as_canonical_u64() << 16) | (__v_957.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_960: G = G::from_u8(__u32_bytes[0]); + let __v_961: G = G::from_u8(__u32_bytes[1]); + let __v_962: G = G::from_u8(__u32_bytes[2]); + let __v_963: G = G::from_u8(__u32_bytes[3]); + let __v_964: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_960; let __vj = __v_961; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_962; let __vj = __v_963; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_965: G = (__v_964 * __v_964); + if (__v_965 != __v_964) { + return Err(ExecError::AssertEqMismatch { lhs: __v_965.as_canonical_u64(), rhs: __v_964.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_804, &__v_960) } else { bytes2_xor_split4_value(__v_804, __v_960, record) }; + let __v_966: G = __b2_out.0; + let __v_967: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_805, &__v_961) } else { bytes2_xor_split4_value(__v_805, __v_961, record) }; + let __v_968: G = __b2_out.0; + let __v_969: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_806, &__v_962) } else { bytes2_xor_split4_value(__v_806, __v_962, record) }; + let __v_970: G = __b2_out.0; + let __v_971: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_807, &__v_963) } else { bytes2_xor_split4_value(__v_807, __v_963, record) }; + let __v_972: G = __b2_out.0; + let __v_973: G = __b2_out.1; + let __v_974: G = (__v_968 + __v_971); + let __v_975: G = (__v_970 + __v_973); + let __v_976: G = (__v_972 + __v_967); + let __v_977: G = (__v_966 + __v_969); + let __u32_sum: u128 = u128::from(((__v_944.as_canonical_u64() << 0) | (__v_945.as_canonical_u64() << 8) | (__v_946.as_canonical_u64() << 16) | (__v_947.as_canonical_u64() << 24))) + u128::from(((__v_974.as_canonical_u64() << 0) | (__v_975.as_canonical_u64() << 8) | (__v_976.as_canonical_u64() << 16) | (__v_977.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_978: G = G::from_u8(__u32_bytes[0]); + let __v_979: G = G::from_u8(__u32_bytes[1]); + let __v_980: G = G::from_u8(__u32_bytes[2]); + let __v_981: G = G::from_u8(__u32_bytes[3]); + let __v_982: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_978; let __vj = __v_979; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_980; let __vj = __v_981; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_983: G = G::from_u64(1); + let __v_984: G = (__v_982 - __v_983); + let __v_985: G = G::from_u64(2); + let __v_986: G = (__v_982 - __v_985); + let __v_987: G = (__v_984 * __v_986); + let __v_988: G = (__v_982 * __v_987); + let __v_989: G = G::from_u64(0); + if (__v_988 != __v_989) { + return Err(ExecError::AssertEqMismatch { lhs: __v_988.as_canonical_u64(), rhs: __v_989.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_990: G = if unconstrained { Bytes2::xor(&__v_958, &__v_978) } else { bytes2_xor_value(__v_958, __v_978, record) }; + let __v_991: G = if unconstrained { Bytes2::xor(&__v_959, &__v_979) } else { bytes2_xor_value(__v_959, __v_979, record) }; + let __v_992: G = if unconstrained { Bytes2::xor(&__v_956, &__v_980) } else { bytes2_xor_value(__v_956, __v_980, record) }; + let __v_993: G = if unconstrained { Bytes2::xor(&__v_957, &__v_981) } else { bytes2_xor_value(__v_957, __v_981, record) }; + let __u32_sum: u128 = u128::from(((__v_960.as_canonical_u64() << 0) | (__v_961.as_canonical_u64() << 8) | (__v_962.as_canonical_u64() << 16) | (__v_963.as_canonical_u64() << 24))) + u128::from(((__v_991.as_canonical_u64() << 0) | (__v_992.as_canonical_u64() << 8) | (__v_993.as_canonical_u64() << 16) | (__v_990.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_994: G = G::from_u8(__u32_bytes[0]); + let __v_995: G = G::from_u8(__u32_bytes[1]); + let __v_996: G = G::from_u8(__u32_bytes[2]); + let __v_997: G = G::from_u8(__u32_bytes[3]); + let __v_998: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_994; let __vj = __v_995; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_996; let __vj = __v_997; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_999: G = (__v_998 * __v_998); + if (__v_999 != __v_998) { + return Err(ExecError::AssertEqMismatch { lhs: __v_999.as_canonical_u64(), rhs: __v_998.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_974, &__v_994) } else { bytes2_xor_split7_value(__v_974, __v_994, record) }; + let __v_1000: G = __b2_out.0; + let __v_1001: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_975, &__v_995) } else { bytes2_xor_split7_value(__v_975, __v_995, record) }; + let __v_1002: G = __b2_out.0; + let __v_1003: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_976, &__v_996) } else { bytes2_xor_split7_value(__v_976, __v_996, record) }; + let __v_1004: G = __b2_out.0; + let __v_1005: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_977, &__v_997) } else { bytes2_xor_split7_value(__v_977, __v_997, record) }; + let __v_1006: G = __b2_out.0; + let __v_1007: G = __b2_out.1; + let __v_1008: G = (__v_1000 + __v_1003); + let __v_1009: G = (__v_1002 + __v_1005); + let __v_1010: G = (__v_1004 + __v_1007); + let __v_1011: G = (__v_1006 + __v_1001); + let __u32_sum: u128 = u128::from(((__v_774.as_canonical_u64() << 0) | (__v_775.as_canonical_u64() << 8) | (__v_776.as_canonical_u64() << 16) | (__v_777.as_canonical_u64() << 24))) + u128::from(((__v_872.as_canonical_u64() << 0) | (__v_873.as_canonical_u64() << 8) | (__v_874.as_canonical_u64() << 16) | (__v_875.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1012: G = G::from_u8(__u32_bytes[0]); + let __v_1013: G = G::from_u8(__u32_bytes[1]); + let __v_1014: G = G::from_u8(__u32_bytes[2]); + let __v_1015: G = G::from_u8(__u32_bytes[3]); + let __v_1016: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1012; let __vj = __v_1013; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1014; let __vj = __v_1015; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1017: G = G::from_u64(1); + let __v_1018: G = (__v_1016 - __v_1017); + let __v_1019: G = G::from_u64(2); + let __v_1020: G = (__v_1016 - __v_1019); + let __v_1021: G = (__v_1018 * __v_1020); + let __v_1022: G = (__v_1016 * __v_1021); + let __v_1023: G = G::from_u64(0); + if (__v_1022 != __v_1023) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1022.as_canonical_u64(), rhs: __v_1023.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1024: G = if unconstrained { Bytes2::xor(&__v_719, &__v_1012) } else { bytes2_xor_value(__v_719, __v_1012, record) }; + let __v_1025: G = if unconstrained { Bytes2::xor(&__v_720, &__v_1013) } else { bytes2_xor_value(__v_720, __v_1013, record) }; + let __v_1026: G = if unconstrained { Bytes2::xor(&__v_721, &__v_1014) } else { bytes2_xor_value(__v_721, __v_1014, record) }; + let __v_1027: G = if unconstrained { Bytes2::xor(&__v_718, &__v_1015) } else { bytes2_xor_value(__v_718, __v_1015, record) }; + let __u32_sum: u128 = u128::from(((__v_926.as_canonical_u64() << 0) | (__v_927.as_canonical_u64() << 8) | (__v_928.as_canonical_u64() << 16) | (__v_929.as_canonical_u64() << 24))) + u128::from(((__v_1026.as_canonical_u64() << 0) | (__v_1027.as_canonical_u64() << 8) | (__v_1024.as_canonical_u64() << 16) | (__v_1025.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1028: G = G::from_u8(__u32_bytes[0]); + let __v_1029: G = G::from_u8(__u32_bytes[1]); + let __v_1030: G = G::from_u8(__u32_bytes[2]); + let __v_1031: G = G::from_u8(__u32_bytes[3]); + let __v_1032: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1028; let __vj = __v_1029; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1030; let __vj = __v_1031; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1033: G = (__v_1032 * __v_1032); + if (__v_1033 != __v_1032) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1033.as_canonical_u64(), rhs: __v_1032.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_872, &__v_1028) } else { bytes2_xor_split4_value(__v_872, __v_1028, record) }; + let __v_1034: G = __b2_out.0; + let __v_1035: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_873, &__v_1029) } else { bytes2_xor_split4_value(__v_873, __v_1029, record) }; + let __v_1036: G = __b2_out.0; + let __v_1037: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_874, &__v_1030) } else { bytes2_xor_split4_value(__v_874, __v_1030, record) }; + let __v_1038: G = __b2_out.0; + let __v_1039: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_875, &__v_1031) } else { bytes2_xor_split4_value(__v_875, __v_1031, record) }; + let __v_1040: G = __b2_out.0; + let __v_1041: G = __b2_out.1; + let __v_1042: G = (__v_1036 + __v_1039); + let __v_1043: G = (__v_1038 + __v_1041); + let __v_1044: G = (__v_1040 + __v_1035); + let __v_1045: G = (__v_1034 + __v_1037); + let __u32_sum: u128 = u128::from(((__v_1012.as_canonical_u64() << 0) | (__v_1013.as_canonical_u64() << 8) | (__v_1014.as_canonical_u64() << 16) | (__v_1015.as_canonical_u64() << 24))) + u128::from(((__v_1042.as_canonical_u64() << 0) | (__v_1043.as_canonical_u64() << 8) | (__v_1044.as_canonical_u64() << 16) | (__v_1045.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1046: G = G::from_u8(__u32_bytes[0]); + let __v_1047: G = G::from_u8(__u32_bytes[1]); + let __v_1048: G = G::from_u8(__u32_bytes[2]); + let __v_1049: G = G::from_u8(__u32_bytes[3]); + let __v_1050: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1046; let __vj = __v_1047; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1048; let __vj = __v_1049; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1051: G = G::from_u64(1); + let __v_1052: G = (__v_1050 - __v_1051); + let __v_1053: G = G::from_u64(2); + let __v_1054: G = (__v_1050 - __v_1053); + let __v_1055: G = (__v_1052 * __v_1054); + let __v_1056: G = (__v_1050 * __v_1055); + let __v_1057: G = G::from_u64(0); + if (__v_1056 != __v_1057) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1056.as_canonical_u64(), rhs: __v_1057.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1058: G = if unconstrained { Bytes2::xor(&__v_1026, &__v_1046) } else { bytes2_xor_value(__v_1026, __v_1046, record) }; + let __v_1059: G = if unconstrained { Bytes2::xor(&__v_1027, &__v_1047) } else { bytes2_xor_value(__v_1027, __v_1047, record) }; + let __v_1060: G = if unconstrained { Bytes2::xor(&__v_1024, &__v_1048) } else { bytes2_xor_value(__v_1024, __v_1048, record) }; + let __v_1061: G = if unconstrained { Bytes2::xor(&__v_1025, &__v_1049) } else { bytes2_xor_value(__v_1025, __v_1049, record) }; + let __u32_sum: u128 = u128::from(((__v_1028.as_canonical_u64() << 0) | (__v_1029.as_canonical_u64() << 8) | (__v_1030.as_canonical_u64() << 16) | (__v_1031.as_canonical_u64() << 24))) + u128::from(((__v_1059.as_canonical_u64() << 0) | (__v_1060.as_canonical_u64() << 8) | (__v_1061.as_canonical_u64() << 16) | (__v_1058.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1062: G = G::from_u8(__u32_bytes[0]); + let __v_1063: G = G::from_u8(__u32_bytes[1]); + let __v_1064: G = G::from_u8(__u32_bytes[2]); + let __v_1065: G = G::from_u8(__u32_bytes[3]); + let __v_1066: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1062; let __vj = __v_1063; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1064; let __vj = __v_1065; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1067: G = (__v_1066 * __v_1066); + if (__v_1067 != __v_1066) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1067.as_canonical_u64(), rhs: __v_1066.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1042, &__v_1062) } else { bytes2_xor_split7_value(__v_1042, __v_1062, record) }; + let __v_1068: G = __b2_out.0; + let __v_1069: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1043, &__v_1063) } else { bytes2_xor_split7_value(__v_1043, __v_1063, record) }; + let __v_1070: G = __b2_out.0; + let __v_1071: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1044, &__v_1064) } else { bytes2_xor_split7_value(__v_1044, __v_1064, record) }; + let __v_1072: G = __b2_out.0; + let __v_1073: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1045, &__v_1065) } else { bytes2_xor_split7_value(__v_1045, __v_1065, record) }; + let __v_1074: G = __b2_out.0; + let __v_1075: G = __b2_out.1; + let __v_1076: G = (__v_1068 + __v_1071); + let __v_1077: G = (__v_1070 + __v_1073); + let __v_1078: G = (__v_1072 + __v_1075); + let __v_1079: G = (__v_1074 + __v_1069); + let __u32_sum: u128 = u128::from(((__v_842.as_canonical_u64() << 0) | (__v_843.as_canonical_u64() << 8) | (__v_844.as_canonical_u64() << 16) | (__v_845.as_canonical_u64() << 24))) + u128::from(((__v_940.as_canonical_u64() << 0) | (__v_941.as_canonical_u64() << 8) | (__v_942.as_canonical_u64() << 16) | (__v_943.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1080: G = G::from_u8(__u32_bytes[0]); + let __v_1081: G = G::from_u8(__u32_bytes[1]); + let __v_1082: G = G::from_u8(__u32_bytes[2]); + let __v_1083: G = G::from_u8(__u32_bytes[3]); + let __v_1084: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1080; let __vj = __v_1081; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1082; let __vj = __v_1083; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1085: G = G::from_u64(1); + let __v_1086: G = (__v_1084 - __v_1085); + let __v_1087: G = G::from_u64(2); + let __v_1088: G = (__v_1084 - __v_1087); + let __v_1089: G = (__v_1086 * __v_1088); + let __v_1090: G = (__v_1084 * __v_1089); + let __v_1091: G = G::from_u64(0); + if (__v_1090 != __v_1091) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1090.as_canonical_u64(), rhs: __v_1091.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1092: G = if unconstrained { Bytes2::xor(&__v_787, &__v_1080) } else { bytes2_xor_value(__v_787, __v_1080, record) }; + let __v_1093: G = if unconstrained { Bytes2::xor(&__v_788, &__v_1081) } else { bytes2_xor_value(__v_788, __v_1081, record) }; + let __v_1094: G = if unconstrained { Bytes2::xor(&__v_789, &__v_1082) } else { bytes2_xor_value(__v_789, __v_1082, record) }; + let __v_1095: G = if unconstrained { Bytes2::xor(&__v_786, &__v_1083) } else { bytes2_xor_value(__v_786, __v_1083, record) }; + let __u32_sum: u128 = u128::from(((__v_722.as_canonical_u64() << 0) | (__v_723.as_canonical_u64() << 8) | (__v_724.as_canonical_u64() << 16) | (__v_725.as_canonical_u64() << 24))) + u128::from(((__v_1094.as_canonical_u64() << 0) | (__v_1095.as_canonical_u64() << 8) | (__v_1092.as_canonical_u64() << 16) | (__v_1093.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1096: G = G::from_u8(__u32_bytes[0]); + let __v_1097: G = G::from_u8(__u32_bytes[1]); + let __v_1098: G = G::from_u8(__u32_bytes[2]); + let __v_1099: G = G::from_u8(__u32_bytes[3]); + let __v_1100: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1096; let __vj = __v_1097; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1098; let __vj = __v_1099; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1101: G = (__v_1100 * __v_1100); + if (__v_1101 != __v_1100) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1101.as_canonical_u64(), rhs: __v_1100.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_940, &__v_1096) } else { bytes2_xor_split4_value(__v_940, __v_1096, record) }; + let __v_1102: G = __b2_out.0; + let __v_1103: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_941, &__v_1097) } else { bytes2_xor_split4_value(__v_941, __v_1097, record) }; + let __v_1104: G = __b2_out.0; + let __v_1105: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_942, &__v_1098) } else { bytes2_xor_split4_value(__v_942, __v_1098, record) }; + let __v_1106: G = __b2_out.0; + let __v_1107: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_943, &__v_1099) } else { bytes2_xor_split4_value(__v_943, __v_1099, record) }; + let __v_1108: G = __b2_out.0; + let __v_1109: G = __b2_out.1; + let __v_1110: G = (__v_1104 + __v_1107); + let __v_1111: G = (__v_1106 + __v_1109); + let __v_1112: G = (__v_1108 + __v_1103); + let __v_1113: G = (__v_1102 + __v_1105); + let __u32_sum: u128 = u128::from(((__v_1080.as_canonical_u64() << 0) | (__v_1081.as_canonical_u64() << 8) | (__v_1082.as_canonical_u64() << 16) | (__v_1083.as_canonical_u64() << 24))) + u128::from(((__v_1110.as_canonical_u64() << 0) | (__v_1111.as_canonical_u64() << 8) | (__v_1112.as_canonical_u64() << 16) | (__v_1113.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1114: G = G::from_u8(__u32_bytes[0]); + let __v_1115: G = G::from_u8(__u32_bytes[1]); + let __v_1116: G = G::from_u8(__u32_bytes[2]); + let __v_1117: G = G::from_u8(__u32_bytes[3]); + let __v_1118: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1114; let __vj = __v_1115; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1116; let __vj = __v_1117; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1119: G = G::from_u64(1); + let __v_1120: G = (__v_1118 - __v_1119); + let __v_1121: G = G::from_u64(2); + let __v_1122: G = (__v_1118 - __v_1121); + let __v_1123: G = (__v_1120 * __v_1122); + let __v_1124: G = (__v_1118 * __v_1123); + let __v_1125: G = G::from_u64(0); + if (__v_1124 != __v_1125) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1124.as_canonical_u64(), rhs: __v_1125.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1126: G = if unconstrained { Bytes2::xor(&__v_1094, &__v_1114) } else { bytes2_xor_value(__v_1094, __v_1114, record) }; + let __v_1127: G = if unconstrained { Bytes2::xor(&__v_1095, &__v_1115) } else { bytes2_xor_value(__v_1095, __v_1115, record) }; + let __v_1128: G = if unconstrained { Bytes2::xor(&__v_1092, &__v_1116) } else { bytes2_xor_value(__v_1092, __v_1116, record) }; + let __v_1129: G = if unconstrained { Bytes2::xor(&__v_1093, &__v_1117) } else { bytes2_xor_value(__v_1093, __v_1117, record) }; + let __u32_sum: u128 = u128::from(((__v_1096.as_canonical_u64() << 0) | (__v_1097.as_canonical_u64() << 8) | (__v_1098.as_canonical_u64() << 16) | (__v_1099.as_canonical_u64() << 24))) + u128::from(((__v_1127.as_canonical_u64() << 0) | (__v_1128.as_canonical_u64() << 8) | (__v_1129.as_canonical_u64() << 16) | (__v_1126.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1130: G = G::from_u8(__u32_bytes[0]); + let __v_1131: G = G::from_u8(__u32_bytes[1]); + let __v_1132: G = G::from_u8(__u32_bytes[2]); + let __v_1133: G = G::from_u8(__u32_bytes[3]); + let __v_1134: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1130; let __vj = __v_1131; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1132; let __vj = __v_1133; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1135: G = (__v_1134 * __v_1134); + if (__v_1135 != __v_1134) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1135.as_canonical_u64(), rhs: __v_1134.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1110, &__v_1130) } else { bytes2_xor_split7_value(__v_1110, __v_1130, record) }; + let __v_1136: G = __b2_out.0; + let __v_1137: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1111, &__v_1131) } else { bytes2_xor_split7_value(__v_1111, __v_1131, record) }; + let __v_1138: G = __b2_out.0; + let __v_1139: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1112, &__v_1132) } else { bytes2_xor_split7_value(__v_1112, __v_1132, record) }; + let __v_1140: G = __b2_out.0; + let __v_1141: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1113, &__v_1133) } else { bytes2_xor_split7_value(__v_1113, __v_1133, record) }; + let __v_1142: G = __b2_out.0; + let __v_1143: G = __b2_out.1; + let __v_1144: G = (__v_1136 + __v_1139); + let __v_1145: G = (__v_1138 + __v_1141); + let __v_1146: G = (__v_1140 + __v_1143); + let __v_1147: G = (__v_1142 + __v_1137); + let __u32_sum: u128 = u128::from(((__v_910.as_canonical_u64() << 0) | (__v_911.as_canonical_u64() << 8) | (__v_912.as_canonical_u64() << 16) | (__v_913.as_canonical_u64() << 24))) + u128::from(((__v_736.as_canonical_u64() << 0) | (__v_737.as_canonical_u64() << 8) | (__v_738.as_canonical_u64() << 16) | (__v_739.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1148: G = G::from_u8(__u32_bytes[0]); + let __v_1149: G = G::from_u8(__u32_bytes[1]); + let __v_1150: G = G::from_u8(__u32_bytes[2]); + let __v_1151: G = G::from_u8(__u32_bytes[3]); + let __v_1152: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1148; let __vj = __v_1149; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1150; let __vj = __v_1151; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1153: G = G::from_u64(1); + let __v_1154: G = (__v_1152 - __v_1153); + let __v_1155: G = G::from_u64(2); + let __v_1156: G = (__v_1152 - __v_1155); + let __v_1157: G = (__v_1154 * __v_1156); + let __v_1158: G = (__v_1152 * __v_1157); + let __v_1159: G = G::from_u64(0); + if (__v_1158 != __v_1159) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1158.as_canonical_u64(), rhs: __v_1159.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1160: G = if unconstrained { Bytes2::xor(&__v_855, &__v_1148) } else { bytes2_xor_value(__v_855, __v_1148, record) }; + let __v_1161: G = if unconstrained { Bytes2::xor(&__v_856, &__v_1149) } else { bytes2_xor_value(__v_856, __v_1149, record) }; + let __v_1162: G = if unconstrained { Bytes2::xor(&__v_857, &__v_1150) } else { bytes2_xor_value(__v_857, __v_1150, record) }; + let __v_1163: G = if unconstrained { Bytes2::xor(&__v_854, &__v_1151) } else { bytes2_xor_value(__v_854, __v_1151, record) }; + let __u32_sum: u128 = u128::from(((__v_790.as_canonical_u64() << 0) | (__v_791.as_canonical_u64() << 8) | (__v_792.as_canonical_u64() << 16) | (__v_793.as_canonical_u64() << 24))) + u128::from(((__v_1162.as_canonical_u64() << 0) | (__v_1163.as_canonical_u64() << 8) | (__v_1160.as_canonical_u64() << 16) | (__v_1161.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1164: G = G::from_u8(__u32_bytes[0]); + let __v_1165: G = G::from_u8(__u32_bytes[1]); + let __v_1166: G = G::from_u8(__u32_bytes[2]); + let __v_1167: G = G::from_u8(__u32_bytes[3]); + let __v_1168: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1164; let __vj = __v_1165; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1166; let __vj = __v_1167; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1169: G = (__v_1168 * __v_1168); + if (__v_1169 != __v_1168) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1169.as_canonical_u64(), rhs: __v_1168.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_736, &__v_1164) } else { bytes2_xor_split4_value(__v_736, __v_1164, record) }; + let __v_1170: G = __b2_out.0; + let __v_1171: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_737, &__v_1165) } else { bytes2_xor_split4_value(__v_737, __v_1165, record) }; + let __v_1172: G = __b2_out.0; + let __v_1173: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_738, &__v_1166) } else { bytes2_xor_split4_value(__v_738, __v_1166, record) }; + let __v_1174: G = __b2_out.0; + let __v_1175: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_739, &__v_1167) } else { bytes2_xor_split4_value(__v_739, __v_1167, record) }; + let __v_1176: G = __b2_out.0; + let __v_1177: G = __b2_out.1; + let __v_1178: G = (__v_1172 + __v_1175); + let __v_1179: G = (__v_1174 + __v_1177); + let __v_1180: G = (__v_1176 + __v_1171); + let __v_1181: G = (__v_1170 + __v_1173); + let __u32_sum: u128 = u128::from(((__v_1148.as_canonical_u64() << 0) | (__v_1149.as_canonical_u64() << 8) | (__v_1150.as_canonical_u64() << 16) | (__v_1151.as_canonical_u64() << 24))) + u128::from(((__v_1178.as_canonical_u64() << 0) | (__v_1179.as_canonical_u64() << 8) | (__v_1180.as_canonical_u64() << 16) | (__v_1181.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1182: G = G::from_u8(__u32_bytes[0]); + let __v_1183: G = G::from_u8(__u32_bytes[1]); + let __v_1184: G = G::from_u8(__u32_bytes[2]); + let __v_1185: G = G::from_u8(__u32_bytes[3]); + let __v_1186: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1182; let __vj = __v_1183; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1184; let __vj = __v_1185; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1187: G = G::from_u64(1); + let __v_1188: G = (__v_1186 - __v_1187); + let __v_1189: G = G::from_u64(2); + let __v_1190: G = (__v_1186 - __v_1189); + let __v_1191: G = (__v_1188 * __v_1190); + let __v_1192: G = (__v_1186 * __v_1191); + let __v_1193: G = G::from_u64(0); + if (__v_1192 != __v_1193) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1192.as_canonical_u64(), rhs: __v_1193.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1194: G = if unconstrained { Bytes2::xor(&__v_1162, &__v_1182) } else { bytes2_xor_value(__v_1162, __v_1182, record) }; + let __v_1195: G = if unconstrained { Bytes2::xor(&__v_1163, &__v_1183) } else { bytes2_xor_value(__v_1163, __v_1183, record) }; + let __v_1196: G = if unconstrained { Bytes2::xor(&__v_1160, &__v_1184) } else { bytes2_xor_value(__v_1160, __v_1184, record) }; + let __v_1197: G = if unconstrained { Bytes2::xor(&__v_1161, &__v_1185) } else { bytes2_xor_value(__v_1161, __v_1185, record) }; + let __u32_sum: u128 = u128::from(((__v_1164.as_canonical_u64() << 0) | (__v_1165.as_canonical_u64() << 8) | (__v_1166.as_canonical_u64() << 16) | (__v_1167.as_canonical_u64() << 24))) + u128::from(((__v_1195.as_canonical_u64() << 0) | (__v_1196.as_canonical_u64() << 8) | (__v_1197.as_canonical_u64() << 16) | (__v_1194.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1198: G = G::from_u8(__u32_bytes[0]); + let __v_1199: G = G::from_u8(__u32_bytes[1]); + let __v_1200: G = G::from_u8(__u32_bytes[2]); + let __v_1201: G = G::from_u8(__u32_bytes[3]); + let __v_1202: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1198; let __vj = __v_1199; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1200; let __vj = __v_1201; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1203: G = (__v_1202 * __v_1202); + if (__v_1203 != __v_1202) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1203.as_canonical_u64(), rhs: __v_1202.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1178, &__v_1198) } else { bytes2_xor_split7_value(__v_1178, __v_1198, record) }; + let __v_1204: G = __b2_out.0; + let __v_1205: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1179, &__v_1199) } else { bytes2_xor_split7_value(__v_1179, __v_1199, record) }; + let __v_1206: G = __b2_out.0; + let __v_1207: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1180, &__v_1200) } else { bytes2_xor_split7_value(__v_1180, __v_1200, record) }; + let __v_1208: G = __b2_out.0; + let __v_1209: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1181, &__v_1201) } else { bytes2_xor_split7_value(__v_1181, __v_1201, record) }; + let __v_1210: G = __b2_out.0; + let __v_1211: G = __b2_out.1; + let __v_1212: G = (__v_1204 + __v_1207); + let __v_1213: G = (__v_1206 + __v_1209); + let __v_1214: G = (__v_1208 + __v_1211); + let __v_1215: G = (__v_1210 + __v_1205); + let __u32_sum: u128 = u128::from(((__v_978.as_canonical_u64() << 0) | (__v_979.as_canonical_u64() << 8) | (__v_980.as_canonical_u64() << 16) | (__v_981.as_canonical_u64() << 24))) + u128::from(((__v_1212.as_canonical_u64() << 0) | (__v_1213.as_canonical_u64() << 8) | (__v_1214.as_canonical_u64() << 16) | (__v_1215.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1216: G = G::from_u8(__u32_bytes[0]); + let __v_1217: G = G::from_u8(__u32_bytes[1]); + let __v_1218: G = G::from_u8(__u32_bytes[2]); + let __v_1219: G = G::from_u8(__u32_bytes[3]); + let __v_1220: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1216; let __vj = __v_1217; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1218; let __vj = __v_1219; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1221: G = G::from_u64(1); + let __v_1222: G = (__v_1220 - __v_1221); + let __v_1223: G = G::from_u64(2); + let __v_1224: G = (__v_1220 - __v_1223); + let __v_1225: G = (__v_1222 * __v_1224); + let __v_1226: G = (__v_1220 * __v_1225); + let __v_1227: G = G::from_u64(0); + if (__v_1226 != __v_1227) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1226.as_canonical_u64(), rhs: __v_1227.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1228: G = if unconstrained { Bytes2::xor(&__v_1059, &__v_1216) } else { bytes2_xor_value(__v_1059, __v_1216, record) }; + let __v_1229: G = if unconstrained { Bytes2::xor(&__v_1060, &__v_1217) } else { bytes2_xor_value(__v_1060, __v_1217, record) }; + let __v_1230: G = if unconstrained { Bytes2::xor(&__v_1061, &__v_1218) } else { bytes2_xor_value(__v_1061, __v_1218, record) }; + let __v_1231: G = if unconstrained { Bytes2::xor(&__v_1058, &__v_1219) } else { bytes2_xor_value(__v_1058, __v_1219, record) }; + let __u32_sum: u128 = u128::from(((__v_1130.as_canonical_u64() << 0) | (__v_1131.as_canonical_u64() << 8) | (__v_1132.as_canonical_u64() << 16) | (__v_1133.as_canonical_u64() << 24))) + u128::from(((__v_1230.as_canonical_u64() << 0) | (__v_1231.as_canonical_u64() << 8) | (__v_1228.as_canonical_u64() << 16) | (__v_1229.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1232: G = G::from_u8(__u32_bytes[0]); + let __v_1233: G = G::from_u8(__u32_bytes[1]); + let __v_1234: G = G::from_u8(__u32_bytes[2]); + let __v_1235: G = G::from_u8(__u32_bytes[3]); + let __v_1236: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1232; let __vj = __v_1233; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1234; let __vj = __v_1235; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1237: G = (__v_1236 * __v_1236); + if (__v_1237 != __v_1236) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1237.as_canonical_u64(), rhs: __v_1236.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1212, &__v_1232) } else { bytes2_xor_split4_value(__v_1212, __v_1232, record) }; + let __v_1238: G = __b2_out.0; + let __v_1239: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1213, &__v_1233) } else { bytes2_xor_split4_value(__v_1213, __v_1233, record) }; + let __v_1240: G = __b2_out.0; + let __v_1241: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1214, &__v_1234) } else { bytes2_xor_split4_value(__v_1214, __v_1234, record) }; + let __v_1242: G = __b2_out.0; + let __v_1243: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1215, &__v_1235) } else { bytes2_xor_split4_value(__v_1215, __v_1235, record) }; + let __v_1244: G = __b2_out.0; + let __v_1245: G = __b2_out.1; + let __v_1246: G = (__v_1240 + __v_1243); + let __v_1247: G = (__v_1242 + __v_1245); + let __v_1248: G = (__v_1244 + __v_1239); + let __v_1249: G = (__v_1238 + __v_1241); + let __u32_sum: u128 = u128::from(((__v_1216.as_canonical_u64() << 0) | (__v_1217.as_canonical_u64() << 8) | (__v_1218.as_canonical_u64() << 16) | (__v_1219.as_canonical_u64() << 24))) + u128::from(((__v_1246.as_canonical_u64() << 0) | (__v_1247.as_canonical_u64() << 8) | (__v_1248.as_canonical_u64() << 16) | (__v_1249.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1250: G = G::from_u8(__u32_bytes[0]); + let __v_1251: G = G::from_u8(__u32_bytes[1]); + let __v_1252: G = G::from_u8(__u32_bytes[2]); + let __v_1253: G = G::from_u8(__u32_bytes[3]); + let __v_1254: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1250; let __vj = __v_1251; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1252; let __vj = __v_1253; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1255: G = G::from_u64(1); + let __v_1256: G = (__v_1254 - __v_1255); + let __v_1257: G = G::from_u64(2); + let __v_1258: G = (__v_1254 - __v_1257); + let __v_1259: G = (__v_1256 * __v_1258); + let __v_1260: G = (__v_1254 * __v_1259); + let __v_1261: G = G::from_u64(0); + if (__v_1260 != __v_1261) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1260.as_canonical_u64(), rhs: __v_1261.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1262: G = if unconstrained { Bytes2::xor(&__v_1230, &__v_1250) } else { bytes2_xor_value(__v_1230, __v_1250, record) }; + let __v_1263: G = if unconstrained { Bytes2::xor(&__v_1231, &__v_1251) } else { bytes2_xor_value(__v_1231, __v_1251, record) }; + let __v_1264: G = if unconstrained { Bytes2::xor(&__v_1228, &__v_1252) } else { bytes2_xor_value(__v_1228, __v_1252, record) }; + let __v_1265: G = if unconstrained { Bytes2::xor(&__v_1229, &__v_1253) } else { bytes2_xor_value(__v_1229, __v_1253, record) }; + let __u32_sum: u128 = u128::from(((__v_1232.as_canonical_u64() << 0) | (__v_1233.as_canonical_u64() << 8) | (__v_1234.as_canonical_u64() << 16) | (__v_1235.as_canonical_u64() << 24))) + u128::from(((__v_1263.as_canonical_u64() << 0) | (__v_1264.as_canonical_u64() << 8) | (__v_1265.as_canonical_u64() << 16) | (__v_1262.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1266: G = G::from_u8(__u32_bytes[0]); + let __v_1267: G = G::from_u8(__u32_bytes[1]); + let __v_1268: G = G::from_u8(__u32_bytes[2]); + let __v_1269: G = G::from_u8(__u32_bytes[3]); + let __v_1270: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1266; let __vj = __v_1267; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1268; let __vj = __v_1269; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1271: G = (__v_1270 * __v_1270); + if (__v_1271 != __v_1270) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1271.as_canonical_u64(), rhs: __v_1270.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1246, &__v_1266) } else { bytes2_xor_split7_value(__v_1246, __v_1266, record) }; + let __v_1272: G = __b2_out.0; + let __v_1273: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1247, &__v_1267) } else { bytes2_xor_split7_value(__v_1247, __v_1267, record) }; + let __v_1274: G = __b2_out.0; + let __v_1275: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1248, &__v_1268) } else { bytes2_xor_split7_value(__v_1248, __v_1268, record) }; + let __v_1276: G = __b2_out.0; + let __v_1277: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1249, &__v_1269) } else { bytes2_xor_split7_value(__v_1249, __v_1269, record) }; + let __v_1278: G = __b2_out.0; + let __v_1279: G = __b2_out.1; + let __v_1280: G = (__v_1272 + __v_1275); + let __v_1281: G = (__v_1274 + __v_1277); + let __v_1282: G = (__v_1276 + __v_1279); + let __v_1283: G = (__v_1278 + __v_1273); + let __u32_sum: u128 = u128::from(((__v_1046.as_canonical_u64() << 0) | (__v_1047.as_canonical_u64() << 8) | (__v_1048.as_canonical_u64() << 16) | (__v_1049.as_canonical_u64() << 24))) + u128::from(((__v_1008.as_canonical_u64() << 0) | (__v_1009.as_canonical_u64() << 8) | (__v_1010.as_canonical_u64() << 16) | (__v_1011.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1284: G = G::from_u8(__u32_bytes[0]); + let __v_1285: G = G::from_u8(__u32_bytes[1]); + let __v_1286: G = G::from_u8(__u32_bytes[2]); + let __v_1287: G = G::from_u8(__u32_bytes[3]); + let __v_1288: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1284; let __vj = __v_1285; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1286; let __vj = __v_1287; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1289: G = G::from_u64(1); + let __v_1290: G = (__v_1288 - __v_1289); + let __v_1291: G = G::from_u64(2); + let __v_1292: G = (__v_1288 - __v_1291); + let __v_1293: G = (__v_1290 * __v_1292); + let __v_1294: G = (__v_1288 * __v_1293); + let __v_1295: G = G::from_u64(0); + if (__v_1294 != __v_1295) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1294.as_canonical_u64(), rhs: __v_1295.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1296: G = if unconstrained { Bytes2::xor(&__v_1127, &__v_1284) } else { bytes2_xor_value(__v_1127, __v_1284, record) }; + let __v_1297: G = if unconstrained { Bytes2::xor(&__v_1128, &__v_1285) } else { bytes2_xor_value(__v_1128, __v_1285, record) }; + let __v_1298: G = if unconstrained { Bytes2::xor(&__v_1129, &__v_1286) } else { bytes2_xor_value(__v_1129, __v_1286, record) }; + let __v_1299: G = if unconstrained { Bytes2::xor(&__v_1126, &__v_1287) } else { bytes2_xor_value(__v_1126, __v_1287, record) }; + let __u32_sum: u128 = u128::from(((__v_1198.as_canonical_u64() << 0) | (__v_1199.as_canonical_u64() << 8) | (__v_1200.as_canonical_u64() << 16) | (__v_1201.as_canonical_u64() << 24))) + u128::from(((__v_1298.as_canonical_u64() << 0) | (__v_1299.as_canonical_u64() << 8) | (__v_1296.as_canonical_u64() << 16) | (__v_1297.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1300: G = G::from_u8(__u32_bytes[0]); + let __v_1301: G = G::from_u8(__u32_bytes[1]); + let __v_1302: G = G::from_u8(__u32_bytes[2]); + let __v_1303: G = G::from_u8(__u32_bytes[3]); + let __v_1304: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1300; let __vj = __v_1301; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1302; let __vj = __v_1303; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1305: G = (__v_1304 * __v_1304); + if (__v_1305 != __v_1304) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1305.as_canonical_u64(), rhs: __v_1304.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1008, &__v_1300) } else { bytes2_xor_split4_value(__v_1008, __v_1300, record) }; + let __v_1306: G = __b2_out.0; + let __v_1307: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1009, &__v_1301) } else { bytes2_xor_split4_value(__v_1009, __v_1301, record) }; + let __v_1308: G = __b2_out.0; + let __v_1309: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1010, &__v_1302) } else { bytes2_xor_split4_value(__v_1010, __v_1302, record) }; + let __v_1310: G = __b2_out.0; + let __v_1311: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1011, &__v_1303) } else { bytes2_xor_split4_value(__v_1011, __v_1303, record) }; + let __v_1312: G = __b2_out.0; + let __v_1313: G = __b2_out.1; + let __v_1314: G = (__v_1308 + __v_1311); + let __v_1315: G = (__v_1310 + __v_1313); + let __v_1316: G = (__v_1312 + __v_1307); + let __v_1317: G = (__v_1306 + __v_1309); + let __u32_sum: u128 = u128::from(((__v_1284.as_canonical_u64() << 0) | (__v_1285.as_canonical_u64() << 8) | (__v_1286.as_canonical_u64() << 16) | (__v_1287.as_canonical_u64() << 24))) + u128::from(((__v_1314.as_canonical_u64() << 0) | (__v_1315.as_canonical_u64() << 8) | (__v_1316.as_canonical_u64() << 16) | (__v_1317.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1318: G = G::from_u8(__u32_bytes[0]); + let __v_1319: G = G::from_u8(__u32_bytes[1]); + let __v_1320: G = G::from_u8(__u32_bytes[2]); + let __v_1321: G = G::from_u8(__u32_bytes[3]); + let __v_1322: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1318; let __vj = __v_1319; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1320; let __vj = __v_1321; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1323: G = G::from_u64(1); + let __v_1324: G = (__v_1322 - __v_1323); + let __v_1325: G = G::from_u64(2); + let __v_1326: G = (__v_1322 - __v_1325); + let __v_1327: G = (__v_1324 * __v_1326); + let __v_1328: G = (__v_1322 * __v_1327); + let __v_1329: G = G::from_u64(0); + if (__v_1328 != __v_1329) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1328.as_canonical_u64(), rhs: __v_1329.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1330: G = if unconstrained { Bytes2::xor(&__v_1298, &__v_1318) } else { bytes2_xor_value(__v_1298, __v_1318, record) }; + let __v_1331: G = if unconstrained { Bytes2::xor(&__v_1299, &__v_1319) } else { bytes2_xor_value(__v_1299, __v_1319, record) }; + let __v_1332: G = if unconstrained { Bytes2::xor(&__v_1296, &__v_1320) } else { bytes2_xor_value(__v_1296, __v_1320, record) }; + let __v_1333: G = if unconstrained { Bytes2::xor(&__v_1297, &__v_1321) } else { bytes2_xor_value(__v_1297, __v_1321, record) }; + let __u32_sum: u128 = u128::from(((__v_1300.as_canonical_u64() << 0) | (__v_1301.as_canonical_u64() << 8) | (__v_1302.as_canonical_u64() << 16) | (__v_1303.as_canonical_u64() << 24))) + u128::from(((__v_1331.as_canonical_u64() << 0) | (__v_1332.as_canonical_u64() << 8) | (__v_1333.as_canonical_u64() << 16) | (__v_1330.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1334: G = G::from_u8(__u32_bytes[0]); + let __v_1335: G = G::from_u8(__u32_bytes[1]); + let __v_1336: G = G::from_u8(__u32_bytes[2]); + let __v_1337: G = G::from_u8(__u32_bytes[3]); + let __v_1338: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1334; let __vj = __v_1335; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1336; let __vj = __v_1337; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1339: G = (__v_1338 * __v_1338); + if (__v_1339 != __v_1338) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1339.as_canonical_u64(), rhs: __v_1338.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1314, &__v_1334) } else { bytes2_xor_split7_value(__v_1314, __v_1334, record) }; + let __v_1340: G = __b2_out.0; + let __v_1341: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1315, &__v_1335) } else { bytes2_xor_split7_value(__v_1315, __v_1335, record) }; + let __v_1342: G = __b2_out.0; + let __v_1343: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1316, &__v_1336) } else { bytes2_xor_split7_value(__v_1316, __v_1336, record) }; + let __v_1344: G = __b2_out.0; + let __v_1345: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1317, &__v_1337) } else { bytes2_xor_split7_value(__v_1317, __v_1337, record) }; + let __v_1346: G = __b2_out.0; + let __v_1347: G = __b2_out.1; + let __v_1348: G = (__v_1340 + __v_1343); + let __v_1349: G = (__v_1342 + __v_1345); + let __v_1350: G = (__v_1344 + __v_1347); + let __v_1351: G = (__v_1346 + __v_1341); + let __u32_sum: u128 = u128::from(((__v_1114.as_canonical_u64() << 0) | (__v_1115.as_canonical_u64() << 8) | (__v_1116.as_canonical_u64() << 16) | (__v_1117.as_canonical_u64() << 24))) + u128::from(((__v_1076.as_canonical_u64() << 0) | (__v_1077.as_canonical_u64() << 8) | (__v_1078.as_canonical_u64() << 16) | (__v_1079.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1352: G = G::from_u8(__u32_bytes[0]); + let __v_1353: G = G::from_u8(__u32_bytes[1]); + let __v_1354: G = G::from_u8(__u32_bytes[2]); + let __v_1355: G = G::from_u8(__u32_bytes[3]); + let __v_1356: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1352; let __vj = __v_1353; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1354; let __vj = __v_1355; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1357: G = G::from_u64(1); + let __v_1358: G = (__v_1356 - __v_1357); + let __v_1359: G = G::from_u64(2); + let __v_1360: G = (__v_1356 - __v_1359); + let __v_1361: G = (__v_1358 * __v_1360); + let __v_1362: G = (__v_1356 * __v_1361); + let __v_1363: G = G::from_u64(0); + if (__v_1362 != __v_1363) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1362.as_canonical_u64(), rhs: __v_1363.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1364: G = if unconstrained { Bytes2::xor(&__v_1195, &__v_1352) } else { bytes2_xor_value(__v_1195, __v_1352, record) }; + let __v_1365: G = if unconstrained { Bytes2::xor(&__v_1196, &__v_1353) } else { bytes2_xor_value(__v_1196, __v_1353, record) }; + let __v_1366: G = if unconstrained { Bytes2::xor(&__v_1197, &__v_1354) } else { bytes2_xor_value(__v_1197, __v_1354, record) }; + let __v_1367: G = if unconstrained { Bytes2::xor(&__v_1194, &__v_1355) } else { bytes2_xor_value(__v_1194, __v_1355, record) }; + let __u32_sum: u128 = u128::from(((__v_994.as_canonical_u64() << 0) | (__v_995.as_canonical_u64() << 8) | (__v_996.as_canonical_u64() << 16) | (__v_997.as_canonical_u64() << 24))) + u128::from(((__v_1366.as_canonical_u64() << 0) | (__v_1367.as_canonical_u64() << 8) | (__v_1364.as_canonical_u64() << 16) | (__v_1365.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1368: G = G::from_u8(__u32_bytes[0]); + let __v_1369: G = G::from_u8(__u32_bytes[1]); + let __v_1370: G = G::from_u8(__u32_bytes[2]); + let __v_1371: G = G::from_u8(__u32_bytes[3]); + let __v_1372: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1368; let __vj = __v_1369; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1370; let __vj = __v_1371; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1373: G = (__v_1372 * __v_1372); + if (__v_1373 != __v_1372) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1373.as_canonical_u64(), rhs: __v_1372.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1076, &__v_1368) } else { bytes2_xor_split4_value(__v_1076, __v_1368, record) }; + let __v_1374: G = __b2_out.0; + let __v_1375: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1077, &__v_1369) } else { bytes2_xor_split4_value(__v_1077, __v_1369, record) }; + let __v_1376: G = __b2_out.0; + let __v_1377: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1078, &__v_1370) } else { bytes2_xor_split4_value(__v_1078, __v_1370, record) }; + let __v_1378: G = __b2_out.0; + let __v_1379: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1079, &__v_1371) } else { bytes2_xor_split4_value(__v_1079, __v_1371, record) }; + let __v_1380: G = __b2_out.0; + let __v_1381: G = __b2_out.1; + let __v_1382: G = (__v_1376 + __v_1379); + let __v_1383: G = (__v_1378 + __v_1381); + let __v_1384: G = (__v_1380 + __v_1375); + let __v_1385: G = (__v_1374 + __v_1377); + let __u32_sum: u128 = u128::from(((__v_1352.as_canonical_u64() << 0) | (__v_1353.as_canonical_u64() << 8) | (__v_1354.as_canonical_u64() << 16) | (__v_1355.as_canonical_u64() << 24))) + u128::from(((__v_1382.as_canonical_u64() << 0) | (__v_1383.as_canonical_u64() << 8) | (__v_1384.as_canonical_u64() << 16) | (__v_1385.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1386: G = G::from_u8(__u32_bytes[0]); + let __v_1387: G = G::from_u8(__u32_bytes[1]); + let __v_1388: G = G::from_u8(__u32_bytes[2]); + let __v_1389: G = G::from_u8(__u32_bytes[3]); + let __v_1390: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1386; let __vj = __v_1387; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1388; let __vj = __v_1389; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1391: G = G::from_u64(1); + let __v_1392: G = (__v_1390 - __v_1391); + let __v_1393: G = G::from_u64(2); + let __v_1394: G = (__v_1390 - __v_1393); + let __v_1395: G = (__v_1392 * __v_1394); + let __v_1396: G = (__v_1390 * __v_1395); + let __v_1397: G = G::from_u64(0); + if (__v_1396 != __v_1397) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1396.as_canonical_u64(), rhs: __v_1397.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1398: G = if unconstrained { Bytes2::xor(&__v_1366, &__v_1386) } else { bytes2_xor_value(__v_1366, __v_1386, record) }; + let __v_1399: G = if unconstrained { Bytes2::xor(&__v_1367, &__v_1387) } else { bytes2_xor_value(__v_1367, __v_1387, record) }; + let __v_1400: G = if unconstrained { Bytes2::xor(&__v_1364, &__v_1388) } else { bytes2_xor_value(__v_1364, __v_1388, record) }; + let __v_1401: G = if unconstrained { Bytes2::xor(&__v_1365, &__v_1389) } else { bytes2_xor_value(__v_1365, __v_1389, record) }; + let __u32_sum: u128 = u128::from(((__v_1368.as_canonical_u64() << 0) | (__v_1369.as_canonical_u64() << 8) | (__v_1370.as_canonical_u64() << 16) | (__v_1371.as_canonical_u64() << 24))) + u128::from(((__v_1399.as_canonical_u64() << 0) | (__v_1400.as_canonical_u64() << 8) | (__v_1401.as_canonical_u64() << 16) | (__v_1398.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1402: G = G::from_u8(__u32_bytes[0]); + let __v_1403: G = G::from_u8(__u32_bytes[1]); + let __v_1404: G = G::from_u8(__u32_bytes[2]); + let __v_1405: G = G::from_u8(__u32_bytes[3]); + let __v_1406: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1402; let __vj = __v_1403; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1404; let __vj = __v_1405; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1407: G = (__v_1406 * __v_1406); + if (__v_1407 != __v_1406) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1407.as_canonical_u64(), rhs: __v_1406.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1382, &__v_1402) } else { bytes2_xor_split7_value(__v_1382, __v_1402, record) }; + let __v_1408: G = __b2_out.0; + let __v_1409: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1383, &__v_1403) } else { bytes2_xor_split7_value(__v_1383, __v_1403, record) }; + let __v_1410: G = __b2_out.0; + let __v_1411: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1384, &__v_1404) } else { bytes2_xor_split7_value(__v_1384, __v_1404, record) }; + let __v_1412: G = __b2_out.0; + let __v_1413: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1385, &__v_1405) } else { bytes2_xor_split7_value(__v_1385, __v_1405, record) }; + let __v_1414: G = __b2_out.0; + let __v_1415: G = __b2_out.1; + let __v_1416: G = (__v_1408 + __v_1411); + let __v_1417: G = (__v_1410 + __v_1413); + let __v_1418: G = (__v_1412 + __v_1415); + let __v_1419: G = (__v_1414 + __v_1409); + let __u32_sum: u128 = u128::from(((__v_1182.as_canonical_u64() << 0) | (__v_1183.as_canonical_u64() << 8) | (__v_1184.as_canonical_u64() << 16) | (__v_1185.as_canonical_u64() << 24))) + u128::from(((__v_1144.as_canonical_u64() << 0) | (__v_1145.as_canonical_u64() << 8) | (__v_1146.as_canonical_u64() << 16) | (__v_1147.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1420: G = G::from_u8(__u32_bytes[0]); + let __v_1421: G = G::from_u8(__u32_bytes[1]); + let __v_1422: G = G::from_u8(__u32_bytes[2]); + let __v_1423: G = G::from_u8(__u32_bytes[3]); + let __v_1424: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1420; let __vj = __v_1421; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1422; let __vj = __v_1423; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1425: G = G::from_u64(1); + let __v_1426: G = (__v_1424 - __v_1425); + let __v_1427: G = G::from_u64(2); + let __v_1428: G = (__v_1424 - __v_1427); + let __v_1429: G = (__v_1426 * __v_1428); + let __v_1430: G = (__v_1424 * __v_1429); + let __v_1431: G = G::from_u64(0); + if (__v_1430 != __v_1431) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1430.as_canonical_u64(), rhs: __v_1431.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1432: G = if unconstrained { Bytes2::xor(&__v_991, &__v_1420) } else { bytes2_xor_value(__v_991, __v_1420, record) }; + let __v_1433: G = if unconstrained { Bytes2::xor(&__v_992, &__v_1421) } else { bytes2_xor_value(__v_992, __v_1421, record) }; + let __v_1434: G = if unconstrained { Bytes2::xor(&__v_993, &__v_1422) } else { bytes2_xor_value(__v_993, __v_1422, record) }; + let __v_1435: G = if unconstrained { Bytes2::xor(&__v_990, &__v_1423) } else { bytes2_xor_value(__v_990, __v_1423, record) }; + let __u32_sum: u128 = u128::from(((__v_1062.as_canonical_u64() << 0) | (__v_1063.as_canonical_u64() << 8) | (__v_1064.as_canonical_u64() << 16) | (__v_1065.as_canonical_u64() << 24))) + u128::from(((__v_1434.as_canonical_u64() << 0) | (__v_1435.as_canonical_u64() << 8) | (__v_1432.as_canonical_u64() << 16) | (__v_1433.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1436: G = G::from_u8(__u32_bytes[0]); + let __v_1437: G = G::from_u8(__u32_bytes[1]); + let __v_1438: G = G::from_u8(__u32_bytes[2]); + let __v_1439: G = G::from_u8(__u32_bytes[3]); + let __v_1440: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1436; let __vj = __v_1437; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1438; let __vj = __v_1439; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1441: G = (__v_1440 * __v_1440); + if (__v_1441 != __v_1440) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1441.as_canonical_u64(), rhs: __v_1440.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1144, &__v_1436) } else { bytes2_xor_split4_value(__v_1144, __v_1436, record) }; + let __v_1442: G = __b2_out.0; + let __v_1443: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1145, &__v_1437) } else { bytes2_xor_split4_value(__v_1145, __v_1437, record) }; + let __v_1444: G = __b2_out.0; + let __v_1445: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1146, &__v_1438) } else { bytes2_xor_split4_value(__v_1146, __v_1438, record) }; + let __v_1446: G = __b2_out.0; + let __v_1447: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1147, &__v_1439) } else { bytes2_xor_split4_value(__v_1147, __v_1439, record) }; + let __v_1448: G = __b2_out.0; + let __v_1449: G = __b2_out.1; + let __v_1450: G = (__v_1444 + __v_1447); + let __v_1451: G = (__v_1446 + __v_1449); + let __v_1452: G = (__v_1448 + __v_1443); + let __v_1453: G = (__v_1442 + __v_1445); + let __u32_sum: u128 = u128::from(((__v_1420.as_canonical_u64() << 0) | (__v_1421.as_canonical_u64() << 8) | (__v_1422.as_canonical_u64() << 16) | (__v_1423.as_canonical_u64() << 24))) + u128::from(((__v_1450.as_canonical_u64() << 0) | (__v_1451.as_canonical_u64() << 8) | (__v_1452.as_canonical_u64() << 16) | (__v_1453.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1454: G = G::from_u8(__u32_bytes[0]); + let __v_1455: G = G::from_u8(__u32_bytes[1]); + let __v_1456: G = G::from_u8(__u32_bytes[2]); + let __v_1457: G = G::from_u8(__u32_bytes[3]); + let __v_1458: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1454; let __vj = __v_1455; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1456; let __vj = __v_1457; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1459: G = G::from_u64(1); + let __v_1460: G = (__v_1458 - __v_1459); + let __v_1461: G = G::from_u64(2); + let __v_1462: G = (__v_1458 - __v_1461); + let __v_1463: G = (__v_1460 * __v_1462); + let __v_1464: G = (__v_1458 * __v_1463); + let __v_1465: G = G::from_u64(0); + if (__v_1464 != __v_1465) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1464.as_canonical_u64(), rhs: __v_1465.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1466: G = if unconstrained { Bytes2::xor(&__v_1434, &__v_1454) } else { bytes2_xor_value(__v_1434, __v_1454, record) }; + let __v_1467: G = if unconstrained { Bytes2::xor(&__v_1435, &__v_1455) } else { bytes2_xor_value(__v_1435, __v_1455, record) }; + let __v_1468: G = if unconstrained { Bytes2::xor(&__v_1432, &__v_1456) } else { bytes2_xor_value(__v_1432, __v_1456, record) }; + let __v_1469: G = if unconstrained { Bytes2::xor(&__v_1433, &__v_1457) } else { bytes2_xor_value(__v_1433, __v_1457, record) }; + let __u32_sum: u128 = u128::from(((__v_1436.as_canonical_u64() << 0) | (__v_1437.as_canonical_u64() << 8) | (__v_1438.as_canonical_u64() << 16) | (__v_1439.as_canonical_u64() << 24))) + u128::from(((__v_1467.as_canonical_u64() << 0) | (__v_1468.as_canonical_u64() << 8) | (__v_1469.as_canonical_u64() << 16) | (__v_1466.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1470: G = G::from_u8(__u32_bytes[0]); + let __v_1471: G = G::from_u8(__u32_bytes[1]); + let __v_1472: G = G::from_u8(__u32_bytes[2]); + let __v_1473: G = G::from_u8(__u32_bytes[3]); + let __v_1474: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1470; let __vj = __v_1471; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1472; let __vj = __v_1473; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1475: G = (__v_1474 * __v_1474); + if (__v_1475 != __v_1474) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1475.as_canonical_u64(), rhs: __v_1474.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1450, &__v_1470) } else { bytes2_xor_split7_value(__v_1450, __v_1470, record) }; + let __v_1476: G = __b2_out.0; + let __v_1477: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1451, &__v_1471) } else { bytes2_xor_split7_value(__v_1451, __v_1471, record) }; + let __v_1478: G = __b2_out.0; + let __v_1479: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1452, &__v_1472) } else { bytes2_xor_split7_value(__v_1452, __v_1472, record) }; + let __v_1480: G = __b2_out.0; + let __v_1481: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1453, &__v_1473) } else { bytes2_xor_split7_value(__v_1453, __v_1473, record) }; + let __v_1482: G = __b2_out.0; + let __v_1483: G = __b2_out.1; + let __v_1484: G = (__v_1476 + __v_1479); + let __v_1485: G = (__v_1478 + __v_1481); + let __v_1486: G = (__v_1480 + __v_1483); + let __v_1487: G = (__v_1482 + __v_1477); + let __u32_sum: u128 = u128::from(((__v_1250.as_canonical_u64() << 0) | (__v_1251.as_canonical_u64() << 8) | (__v_1252.as_canonical_u64() << 16) | (__v_1253.as_canonical_u64() << 24))) + u128::from(((__v_1348.as_canonical_u64() << 0) | (__v_1349.as_canonical_u64() << 8) | (__v_1350.as_canonical_u64() << 16) | (__v_1351.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1488: G = G::from_u8(__u32_bytes[0]); + let __v_1489: G = G::from_u8(__u32_bytes[1]); + let __v_1490: G = G::from_u8(__u32_bytes[2]); + let __v_1491: G = G::from_u8(__u32_bytes[3]); + let __v_1492: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1488; let __vj = __v_1489; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1490; let __vj = __v_1491; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1493: G = G::from_u64(1); + let __v_1494: G = (__v_1492 - __v_1493); + let __v_1495: G = G::from_u64(2); + let __v_1496: G = (__v_1492 - __v_1495); + let __v_1497: G = (__v_1494 * __v_1496); + let __v_1498: G = (__v_1492 * __v_1497); + let __v_1499: G = G::from_u64(0); + if (__v_1498 != __v_1499) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1498.as_canonical_u64(), rhs: __v_1499.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1500: G = if unconstrained { Bytes2::xor(&__v_1467, &__v_1488) } else { bytes2_xor_value(__v_1467, __v_1488, record) }; + let __v_1501: G = if unconstrained { Bytes2::xor(&__v_1468, &__v_1489) } else { bytes2_xor_value(__v_1468, __v_1489, record) }; + let __v_1502: G = if unconstrained { Bytes2::xor(&__v_1469, &__v_1490) } else { bytes2_xor_value(__v_1469, __v_1490, record) }; + let __v_1503: G = if unconstrained { Bytes2::xor(&__v_1466, &__v_1491) } else { bytes2_xor_value(__v_1466, __v_1491, record) }; + let __u32_sum: u128 = u128::from(((__v_1402.as_canonical_u64() << 0) | (__v_1403.as_canonical_u64() << 8) | (__v_1404.as_canonical_u64() << 16) | (__v_1405.as_canonical_u64() << 24))) + u128::from(((__v_1502.as_canonical_u64() << 0) | (__v_1503.as_canonical_u64() << 8) | (__v_1500.as_canonical_u64() << 16) | (__v_1501.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1504: G = G::from_u8(__u32_bytes[0]); + let __v_1505: G = G::from_u8(__u32_bytes[1]); + let __v_1506: G = G::from_u8(__u32_bytes[2]); + let __v_1507: G = G::from_u8(__u32_bytes[3]); + let __v_1508: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1504; let __vj = __v_1505; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1506; let __vj = __v_1507; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1509: G = (__v_1508 * __v_1508); + if (__v_1509 != __v_1508) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1509.as_canonical_u64(), rhs: __v_1508.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1348, &__v_1504) } else { bytes2_xor_split4_value(__v_1348, __v_1504, record) }; + let __v_1510: G = __b2_out.0; + let __v_1511: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1349, &__v_1505) } else { bytes2_xor_split4_value(__v_1349, __v_1505, record) }; + let __v_1512: G = __b2_out.0; + let __v_1513: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1350, &__v_1506) } else { bytes2_xor_split4_value(__v_1350, __v_1506, record) }; + let __v_1514: G = __b2_out.0; + let __v_1515: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1351, &__v_1507) } else { bytes2_xor_split4_value(__v_1351, __v_1507, record) }; + let __v_1516: G = __b2_out.0; + let __v_1517: G = __b2_out.1; + let __v_1518: G = (__v_1512 + __v_1515); + let __v_1519: G = (__v_1514 + __v_1517); + let __v_1520: G = (__v_1516 + __v_1511); + let __v_1521: G = (__v_1510 + __v_1513); + let __u32_sum: u128 = u128::from(((__v_1488.as_canonical_u64() << 0) | (__v_1489.as_canonical_u64() << 8) | (__v_1490.as_canonical_u64() << 16) | (__v_1491.as_canonical_u64() << 24))) + u128::from(((__v_1518.as_canonical_u64() << 0) | (__v_1519.as_canonical_u64() << 8) | (__v_1520.as_canonical_u64() << 16) | (__v_1521.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1522: G = G::from_u8(__u32_bytes[0]); + let __v_1523: G = G::from_u8(__u32_bytes[1]); + let __v_1524: G = G::from_u8(__u32_bytes[2]); + let __v_1525: G = G::from_u8(__u32_bytes[3]); + let __v_1526: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1522; let __vj = __v_1523; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1524; let __vj = __v_1525; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1527: G = G::from_u64(1); + let __v_1528: G = (__v_1526 - __v_1527); + let __v_1529: G = G::from_u64(2); + let __v_1530: G = (__v_1526 - __v_1529); + let __v_1531: G = (__v_1528 * __v_1530); + let __v_1532: G = (__v_1526 * __v_1531); + let __v_1533: G = G::from_u64(0); + if (__v_1532 != __v_1533) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1532.as_canonical_u64(), rhs: __v_1533.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1534: G = if unconstrained { Bytes2::xor(&__v_1502, &__v_1522) } else { bytes2_xor_value(__v_1502, __v_1522, record) }; + let __v_1535: G = if unconstrained { Bytes2::xor(&__v_1503, &__v_1523) } else { bytes2_xor_value(__v_1503, __v_1523, record) }; + let __v_1536: G = if unconstrained { Bytes2::xor(&__v_1500, &__v_1524) } else { bytes2_xor_value(__v_1500, __v_1524, record) }; + let __v_1537: G = if unconstrained { Bytes2::xor(&__v_1501, &__v_1525) } else { bytes2_xor_value(__v_1501, __v_1525, record) }; + let __u32_sum: u128 = u128::from(((__v_1504.as_canonical_u64() << 0) | (__v_1505.as_canonical_u64() << 8) | (__v_1506.as_canonical_u64() << 16) | (__v_1507.as_canonical_u64() << 24))) + u128::from(((__v_1535.as_canonical_u64() << 0) | (__v_1536.as_canonical_u64() << 8) | (__v_1537.as_canonical_u64() << 16) | (__v_1534.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1538: G = G::from_u8(__u32_bytes[0]); + let __v_1539: G = G::from_u8(__u32_bytes[1]); + let __v_1540: G = G::from_u8(__u32_bytes[2]); + let __v_1541: G = G::from_u8(__u32_bytes[3]); + let __v_1542: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1538; let __vj = __v_1539; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1540; let __vj = __v_1541; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1543: G = (__v_1542 * __v_1542); + if (__v_1543 != __v_1542) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1543.as_canonical_u64(), rhs: __v_1542.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1518, &__v_1538) } else { bytes2_xor_split7_value(__v_1518, __v_1538, record) }; + let __v_1544: G = __b2_out.0; + let __v_1545: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1519, &__v_1539) } else { bytes2_xor_split7_value(__v_1519, __v_1539, record) }; + let __v_1546: G = __b2_out.0; + let __v_1547: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1520, &__v_1540) } else { bytes2_xor_split7_value(__v_1520, __v_1540, record) }; + let __v_1548: G = __b2_out.0; + let __v_1549: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1521, &__v_1541) } else { bytes2_xor_split7_value(__v_1521, __v_1541, record) }; + let __v_1550: G = __b2_out.0; + let __v_1551: G = __b2_out.1; + let __v_1552: G = (__v_1544 + __v_1547); + let __v_1553: G = (__v_1546 + __v_1549); + let __v_1554: G = (__v_1548 + __v_1551); + let __v_1555: G = (__v_1550 + __v_1545); + let __u32_sum: u128 = u128::from(((__v_1318.as_canonical_u64() << 0) | (__v_1319.as_canonical_u64() << 8) | (__v_1320.as_canonical_u64() << 16) | (__v_1321.as_canonical_u64() << 24))) + u128::from(((__v_1416.as_canonical_u64() << 0) | (__v_1417.as_canonical_u64() << 8) | (__v_1418.as_canonical_u64() << 16) | (__v_1419.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1556: G = G::from_u8(__u32_bytes[0]); + let __v_1557: G = G::from_u8(__u32_bytes[1]); + let __v_1558: G = G::from_u8(__u32_bytes[2]); + let __v_1559: G = G::from_u8(__u32_bytes[3]); + let __v_1560: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1556; let __vj = __v_1557; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1558; let __vj = __v_1559; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1561: G = G::from_u64(1); + let __v_1562: G = (__v_1560 - __v_1561); + let __v_1563: G = G::from_u64(2); + let __v_1564: G = (__v_1560 - __v_1563); + let __v_1565: G = (__v_1562 * __v_1564); + let __v_1566: G = (__v_1560 * __v_1565); + let __v_1567: G = G::from_u64(0); + if (__v_1566 != __v_1567) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1566.as_canonical_u64(), rhs: __v_1567.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1568: G = if unconstrained { Bytes2::xor(&__v_1263, &__v_1556) } else { bytes2_xor_value(__v_1263, __v_1556, record) }; + let __v_1569: G = if unconstrained { Bytes2::xor(&__v_1264, &__v_1557) } else { bytes2_xor_value(__v_1264, __v_1557, record) }; + let __v_1570: G = if unconstrained { Bytes2::xor(&__v_1265, &__v_1558) } else { bytes2_xor_value(__v_1265, __v_1558, record) }; + let __v_1571: G = if unconstrained { Bytes2::xor(&__v_1262, &__v_1559) } else { bytes2_xor_value(__v_1262, __v_1559, record) }; + let __u32_sum: u128 = u128::from(((__v_1470.as_canonical_u64() << 0) | (__v_1471.as_canonical_u64() << 8) | (__v_1472.as_canonical_u64() << 16) | (__v_1473.as_canonical_u64() << 24))) + u128::from(((__v_1570.as_canonical_u64() << 0) | (__v_1571.as_canonical_u64() << 8) | (__v_1568.as_canonical_u64() << 16) | (__v_1569.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1572: G = G::from_u8(__u32_bytes[0]); + let __v_1573: G = G::from_u8(__u32_bytes[1]); + let __v_1574: G = G::from_u8(__u32_bytes[2]); + let __v_1575: G = G::from_u8(__u32_bytes[3]); + let __v_1576: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1572; let __vj = __v_1573; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1574; let __vj = __v_1575; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1577: G = (__v_1576 * __v_1576); + if (__v_1577 != __v_1576) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1577.as_canonical_u64(), rhs: __v_1576.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1416, &__v_1572) } else { bytes2_xor_split4_value(__v_1416, __v_1572, record) }; + let __v_1578: G = __b2_out.0; + let __v_1579: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1417, &__v_1573) } else { bytes2_xor_split4_value(__v_1417, __v_1573, record) }; + let __v_1580: G = __b2_out.0; + let __v_1581: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1418, &__v_1574) } else { bytes2_xor_split4_value(__v_1418, __v_1574, record) }; + let __v_1582: G = __b2_out.0; + let __v_1583: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1419, &__v_1575) } else { bytes2_xor_split4_value(__v_1419, __v_1575, record) }; + let __v_1584: G = __b2_out.0; + let __v_1585: G = __b2_out.1; + let __v_1586: G = (__v_1580 + __v_1583); + let __v_1587: G = (__v_1582 + __v_1585); + let __v_1588: G = (__v_1584 + __v_1579); + let __v_1589: G = (__v_1578 + __v_1581); + let __u32_sum: u128 = u128::from(((__v_1556.as_canonical_u64() << 0) | (__v_1557.as_canonical_u64() << 8) | (__v_1558.as_canonical_u64() << 16) | (__v_1559.as_canonical_u64() << 24))) + u128::from(((__v_1586.as_canonical_u64() << 0) | (__v_1587.as_canonical_u64() << 8) | (__v_1588.as_canonical_u64() << 16) | (__v_1589.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1590: G = G::from_u8(__u32_bytes[0]); + let __v_1591: G = G::from_u8(__u32_bytes[1]); + let __v_1592: G = G::from_u8(__u32_bytes[2]); + let __v_1593: G = G::from_u8(__u32_bytes[3]); + let __v_1594: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1590; let __vj = __v_1591; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1592; let __vj = __v_1593; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1595: G = G::from_u64(1); + let __v_1596: G = (__v_1594 - __v_1595); + let __v_1597: G = G::from_u64(2); + let __v_1598: G = (__v_1594 - __v_1597); + let __v_1599: G = (__v_1596 * __v_1598); + let __v_1600: G = (__v_1594 * __v_1599); + let __v_1601: G = G::from_u64(0); + if (__v_1600 != __v_1601) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1600.as_canonical_u64(), rhs: __v_1601.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1602: G = if unconstrained { Bytes2::xor(&__v_1570, &__v_1590) } else { bytes2_xor_value(__v_1570, __v_1590, record) }; + let __v_1603: G = if unconstrained { Bytes2::xor(&__v_1571, &__v_1591) } else { bytes2_xor_value(__v_1571, __v_1591, record) }; + let __v_1604: G = if unconstrained { Bytes2::xor(&__v_1568, &__v_1592) } else { bytes2_xor_value(__v_1568, __v_1592, record) }; + let __v_1605: G = if unconstrained { Bytes2::xor(&__v_1569, &__v_1593) } else { bytes2_xor_value(__v_1569, __v_1593, record) }; + let __u32_sum: u128 = u128::from(((__v_1572.as_canonical_u64() << 0) | (__v_1573.as_canonical_u64() << 8) | (__v_1574.as_canonical_u64() << 16) | (__v_1575.as_canonical_u64() << 24))) + u128::from(((__v_1603.as_canonical_u64() << 0) | (__v_1604.as_canonical_u64() << 8) | (__v_1605.as_canonical_u64() << 16) | (__v_1602.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1606: G = G::from_u8(__u32_bytes[0]); + let __v_1607: G = G::from_u8(__u32_bytes[1]); + let __v_1608: G = G::from_u8(__u32_bytes[2]); + let __v_1609: G = G::from_u8(__u32_bytes[3]); + let __v_1610: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1606; let __vj = __v_1607; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1608; let __vj = __v_1609; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1611: G = (__v_1610 * __v_1610); + if (__v_1611 != __v_1610) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1611.as_canonical_u64(), rhs: __v_1610.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1586, &__v_1606) } else { bytes2_xor_split7_value(__v_1586, __v_1606, record) }; + let __v_1612: G = __b2_out.0; + let __v_1613: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1587, &__v_1607) } else { bytes2_xor_split7_value(__v_1587, __v_1607, record) }; + let __v_1614: G = __b2_out.0; + let __v_1615: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1588, &__v_1608) } else { bytes2_xor_split7_value(__v_1588, __v_1608, record) }; + let __v_1616: G = __b2_out.0; + let __v_1617: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1589, &__v_1609) } else { bytes2_xor_split7_value(__v_1589, __v_1609, record) }; + let __v_1618: G = __b2_out.0; + let __v_1619: G = __b2_out.1; + let __v_1620: G = (__v_1612 + __v_1615); + let __v_1621: G = (__v_1614 + __v_1617); + let __v_1622: G = (__v_1616 + __v_1619); + let __v_1623: G = (__v_1618 + __v_1613); + let __u32_sum: u128 = u128::from(((__v_1386.as_canonical_u64() << 0) | (__v_1387.as_canonical_u64() << 8) | (__v_1388.as_canonical_u64() << 16) | (__v_1389.as_canonical_u64() << 24))) + u128::from(((__v_1484.as_canonical_u64() << 0) | (__v_1485.as_canonical_u64() << 8) | (__v_1486.as_canonical_u64() << 16) | (__v_1487.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1624: G = G::from_u8(__u32_bytes[0]); + let __v_1625: G = G::from_u8(__u32_bytes[1]); + let __v_1626: G = G::from_u8(__u32_bytes[2]); + let __v_1627: G = G::from_u8(__u32_bytes[3]); + let __v_1628: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1624; let __vj = __v_1625; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1626; let __vj = __v_1627; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1629: G = G::from_u64(1); + let __v_1630: G = (__v_1628 - __v_1629); + let __v_1631: G = G::from_u64(2); + let __v_1632: G = (__v_1628 - __v_1631); + let __v_1633: G = (__v_1630 * __v_1632); + let __v_1634: G = (__v_1628 * __v_1633); + let __v_1635: G = G::from_u64(0); + if (__v_1634 != __v_1635) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1634.as_canonical_u64(), rhs: __v_1635.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1636: G = if unconstrained { Bytes2::xor(&__v_1331, &__v_1624) } else { bytes2_xor_value(__v_1331, __v_1624, record) }; + let __v_1637: G = if unconstrained { Bytes2::xor(&__v_1332, &__v_1625) } else { bytes2_xor_value(__v_1332, __v_1625, record) }; + let __v_1638: G = if unconstrained { Bytes2::xor(&__v_1333, &__v_1626) } else { bytes2_xor_value(__v_1333, __v_1626, record) }; + let __v_1639: G = if unconstrained { Bytes2::xor(&__v_1330, &__v_1627) } else { bytes2_xor_value(__v_1330, __v_1627, record) }; + let __u32_sum: u128 = u128::from(((__v_1266.as_canonical_u64() << 0) | (__v_1267.as_canonical_u64() << 8) | (__v_1268.as_canonical_u64() << 16) | (__v_1269.as_canonical_u64() << 24))) + u128::from(((__v_1638.as_canonical_u64() << 0) | (__v_1639.as_canonical_u64() << 8) | (__v_1636.as_canonical_u64() << 16) | (__v_1637.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1640: G = G::from_u8(__u32_bytes[0]); + let __v_1641: G = G::from_u8(__u32_bytes[1]); + let __v_1642: G = G::from_u8(__u32_bytes[2]); + let __v_1643: G = G::from_u8(__u32_bytes[3]); + let __v_1644: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1640; let __vj = __v_1641; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1642; let __vj = __v_1643; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1645: G = (__v_1644 * __v_1644); + if (__v_1645 != __v_1644) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1645.as_canonical_u64(), rhs: __v_1644.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1484, &__v_1640) } else { bytes2_xor_split4_value(__v_1484, __v_1640, record) }; + let __v_1646: G = __b2_out.0; + let __v_1647: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1485, &__v_1641) } else { bytes2_xor_split4_value(__v_1485, __v_1641, record) }; + let __v_1648: G = __b2_out.0; + let __v_1649: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1486, &__v_1642) } else { bytes2_xor_split4_value(__v_1486, __v_1642, record) }; + let __v_1650: G = __b2_out.0; + let __v_1651: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1487, &__v_1643) } else { bytes2_xor_split4_value(__v_1487, __v_1643, record) }; + let __v_1652: G = __b2_out.0; + let __v_1653: G = __b2_out.1; + let __v_1654: G = (__v_1648 + __v_1651); + let __v_1655: G = (__v_1650 + __v_1653); + let __v_1656: G = (__v_1652 + __v_1647); + let __v_1657: G = (__v_1646 + __v_1649); + let __u32_sum: u128 = u128::from(((__v_1624.as_canonical_u64() << 0) | (__v_1625.as_canonical_u64() << 8) | (__v_1626.as_canonical_u64() << 16) | (__v_1627.as_canonical_u64() << 24))) + u128::from(((__v_1654.as_canonical_u64() << 0) | (__v_1655.as_canonical_u64() << 8) | (__v_1656.as_canonical_u64() << 16) | (__v_1657.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1658: G = G::from_u8(__u32_bytes[0]); + let __v_1659: G = G::from_u8(__u32_bytes[1]); + let __v_1660: G = G::from_u8(__u32_bytes[2]); + let __v_1661: G = G::from_u8(__u32_bytes[3]); + let __v_1662: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1658; let __vj = __v_1659; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1660; let __vj = __v_1661; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1663: G = G::from_u64(1); + let __v_1664: G = (__v_1662 - __v_1663); + let __v_1665: G = G::from_u64(2); + let __v_1666: G = (__v_1662 - __v_1665); + let __v_1667: G = (__v_1664 * __v_1666); + let __v_1668: G = (__v_1662 * __v_1667); + let __v_1669: G = G::from_u64(0); + if (__v_1668 != __v_1669) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1668.as_canonical_u64(), rhs: __v_1669.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1670: G = if unconstrained { Bytes2::xor(&__v_1638, &__v_1658) } else { bytes2_xor_value(__v_1638, __v_1658, record) }; + let __v_1671: G = if unconstrained { Bytes2::xor(&__v_1639, &__v_1659) } else { bytes2_xor_value(__v_1639, __v_1659, record) }; + let __v_1672: G = if unconstrained { Bytes2::xor(&__v_1636, &__v_1660) } else { bytes2_xor_value(__v_1636, __v_1660, record) }; + let __v_1673: G = if unconstrained { Bytes2::xor(&__v_1637, &__v_1661) } else { bytes2_xor_value(__v_1637, __v_1661, record) }; + let __u32_sum: u128 = u128::from(((__v_1640.as_canonical_u64() << 0) | (__v_1641.as_canonical_u64() << 8) | (__v_1642.as_canonical_u64() << 16) | (__v_1643.as_canonical_u64() << 24))) + u128::from(((__v_1671.as_canonical_u64() << 0) | (__v_1672.as_canonical_u64() << 8) | (__v_1673.as_canonical_u64() << 16) | (__v_1670.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1674: G = G::from_u8(__u32_bytes[0]); + let __v_1675: G = G::from_u8(__u32_bytes[1]); + let __v_1676: G = G::from_u8(__u32_bytes[2]); + let __v_1677: G = G::from_u8(__u32_bytes[3]); + let __v_1678: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1674; let __vj = __v_1675; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1676; let __vj = __v_1677; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1679: G = (__v_1678 * __v_1678); + if (__v_1679 != __v_1678) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1679.as_canonical_u64(), rhs: __v_1678.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1654, &__v_1674) } else { bytes2_xor_split7_value(__v_1654, __v_1674, record) }; + let __v_1680: G = __b2_out.0; + let __v_1681: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1655, &__v_1675) } else { bytes2_xor_split7_value(__v_1655, __v_1675, record) }; + let __v_1682: G = __b2_out.0; + let __v_1683: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1656, &__v_1676) } else { bytes2_xor_split7_value(__v_1656, __v_1676, record) }; + let __v_1684: G = __b2_out.0; + let __v_1685: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1657, &__v_1677) } else { bytes2_xor_split7_value(__v_1657, __v_1677, record) }; + let __v_1686: G = __b2_out.0; + let __v_1687: G = __b2_out.1; + let __v_1688: G = (__v_1680 + __v_1683); + let __v_1689: G = (__v_1682 + __v_1685); + let __v_1690: G = (__v_1684 + __v_1687); + let __v_1691: G = (__v_1686 + __v_1681); + let __u32_sum: u128 = u128::from(((__v_1454.as_canonical_u64() << 0) | (__v_1455.as_canonical_u64() << 8) | (__v_1456.as_canonical_u64() << 16) | (__v_1457.as_canonical_u64() << 24))) + u128::from(((__v_1280.as_canonical_u64() << 0) | (__v_1281.as_canonical_u64() << 8) | (__v_1282.as_canonical_u64() << 16) | (__v_1283.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1692: G = G::from_u8(__u32_bytes[0]); + let __v_1693: G = G::from_u8(__u32_bytes[1]); + let __v_1694: G = G::from_u8(__u32_bytes[2]); + let __v_1695: G = G::from_u8(__u32_bytes[3]); + let __v_1696: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1692; let __vj = __v_1693; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1694; let __vj = __v_1695; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1697: G = G::from_u64(1); + let __v_1698: G = (__v_1696 - __v_1697); + let __v_1699: G = G::from_u64(2); + let __v_1700: G = (__v_1696 - __v_1699); + let __v_1701: G = (__v_1698 * __v_1700); + let __v_1702: G = (__v_1696 * __v_1701); + let __v_1703: G = G::from_u64(0); + if (__v_1702 != __v_1703) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1702.as_canonical_u64(), rhs: __v_1703.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1704: G = if unconstrained { Bytes2::xor(&__v_1399, &__v_1692) } else { bytes2_xor_value(__v_1399, __v_1692, record) }; + let __v_1705: G = if unconstrained { Bytes2::xor(&__v_1400, &__v_1693) } else { bytes2_xor_value(__v_1400, __v_1693, record) }; + let __v_1706: G = if unconstrained { Bytes2::xor(&__v_1401, &__v_1694) } else { bytes2_xor_value(__v_1401, __v_1694, record) }; + let __v_1707: G = if unconstrained { Bytes2::xor(&__v_1398, &__v_1695) } else { bytes2_xor_value(__v_1398, __v_1695, record) }; + let __u32_sum: u128 = u128::from(((__v_1334.as_canonical_u64() << 0) | (__v_1335.as_canonical_u64() << 8) | (__v_1336.as_canonical_u64() << 16) | (__v_1337.as_canonical_u64() << 24))) + u128::from(((__v_1706.as_canonical_u64() << 0) | (__v_1707.as_canonical_u64() << 8) | (__v_1704.as_canonical_u64() << 16) | (__v_1705.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1708: G = G::from_u8(__u32_bytes[0]); + let __v_1709: G = G::from_u8(__u32_bytes[1]); + let __v_1710: G = G::from_u8(__u32_bytes[2]); + let __v_1711: G = G::from_u8(__u32_bytes[3]); + let __v_1712: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1708; let __vj = __v_1709; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1710; let __vj = __v_1711; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1713: G = (__v_1712 * __v_1712); + if (__v_1713 != __v_1712) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1713.as_canonical_u64(), rhs: __v_1712.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1280, &__v_1708) } else { bytes2_xor_split4_value(__v_1280, __v_1708, record) }; + let __v_1714: G = __b2_out.0; + let __v_1715: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1281, &__v_1709) } else { bytes2_xor_split4_value(__v_1281, __v_1709, record) }; + let __v_1716: G = __b2_out.0; + let __v_1717: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1282, &__v_1710) } else { bytes2_xor_split4_value(__v_1282, __v_1710, record) }; + let __v_1718: G = __b2_out.0; + let __v_1719: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1283, &__v_1711) } else { bytes2_xor_split4_value(__v_1283, __v_1711, record) }; + let __v_1720: G = __b2_out.0; + let __v_1721: G = __b2_out.1; + let __v_1722: G = (__v_1716 + __v_1719); + let __v_1723: G = (__v_1718 + __v_1721); + let __v_1724: G = (__v_1720 + __v_1715); + let __v_1725: G = (__v_1714 + __v_1717); + let __u32_sum: u128 = u128::from(((__v_1692.as_canonical_u64() << 0) | (__v_1693.as_canonical_u64() << 8) | (__v_1694.as_canonical_u64() << 16) | (__v_1695.as_canonical_u64() << 24))) + u128::from(((__v_1722.as_canonical_u64() << 0) | (__v_1723.as_canonical_u64() << 8) | (__v_1724.as_canonical_u64() << 16) | (__v_1725.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1726: G = G::from_u8(__u32_bytes[0]); + let __v_1727: G = G::from_u8(__u32_bytes[1]); + let __v_1728: G = G::from_u8(__u32_bytes[2]); + let __v_1729: G = G::from_u8(__u32_bytes[3]); + let __v_1730: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1726; let __vj = __v_1727; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1728; let __vj = __v_1729; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1731: G = G::from_u64(1); + let __v_1732: G = (__v_1730 - __v_1731); + let __v_1733: G = G::from_u64(2); + let __v_1734: G = (__v_1730 - __v_1733); + let __v_1735: G = (__v_1732 * __v_1734); + let __v_1736: G = (__v_1730 * __v_1735); + let __v_1737: G = G::from_u64(0); + if (__v_1736 != __v_1737) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1736.as_canonical_u64(), rhs: __v_1737.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1738: G = if unconstrained { Bytes2::xor(&__v_1706, &__v_1726) } else { bytes2_xor_value(__v_1706, __v_1726, record) }; + let __v_1739: G = if unconstrained { Bytes2::xor(&__v_1707, &__v_1727) } else { bytes2_xor_value(__v_1707, __v_1727, record) }; + let __v_1740: G = if unconstrained { Bytes2::xor(&__v_1704, &__v_1728) } else { bytes2_xor_value(__v_1704, __v_1728, record) }; + let __v_1741: G = if unconstrained { Bytes2::xor(&__v_1705, &__v_1729) } else { bytes2_xor_value(__v_1705, __v_1729, record) }; + let __u32_sum: u128 = u128::from(((__v_1708.as_canonical_u64() << 0) | (__v_1709.as_canonical_u64() << 8) | (__v_1710.as_canonical_u64() << 16) | (__v_1711.as_canonical_u64() << 24))) + u128::from(((__v_1739.as_canonical_u64() << 0) | (__v_1740.as_canonical_u64() << 8) | (__v_1741.as_canonical_u64() << 16) | (__v_1738.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1742: G = G::from_u8(__u32_bytes[0]); + let __v_1743: G = G::from_u8(__u32_bytes[1]); + let __v_1744: G = G::from_u8(__u32_bytes[2]); + let __v_1745: G = G::from_u8(__u32_bytes[3]); + let __v_1746: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1742; let __vj = __v_1743; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1744; let __vj = __v_1745; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1747: G = (__v_1746 * __v_1746); + if (__v_1747 != __v_1746) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1747.as_canonical_u64(), rhs: __v_1746.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1722, &__v_1742) } else { bytes2_xor_split7_value(__v_1722, __v_1742, record) }; + let __v_1748: G = __b2_out.0; + let __v_1749: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1723, &__v_1743) } else { bytes2_xor_split7_value(__v_1723, __v_1743, record) }; + let __v_1750: G = __b2_out.0; + let __v_1751: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1724, &__v_1744) } else { bytes2_xor_split7_value(__v_1724, __v_1744, record) }; + let __v_1752: G = __b2_out.0; + let __v_1753: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1725, &__v_1745) } else { bytes2_xor_split7_value(__v_1725, __v_1745, record) }; + let __v_1754: G = __b2_out.0; + let __v_1755: G = __b2_out.1; + let __v_1756: G = (__v_1748 + __v_1751); + let __v_1757: G = (__v_1750 + __v_1753); + let __v_1758: G = (__v_1752 + __v_1755); + let __v_1759: G = (__v_1754 + __v_1749); + let __u32_sum: u128 = u128::from(((__v_1522.as_canonical_u64() << 0) | (__v_1523.as_canonical_u64() << 8) | (__v_1524.as_canonical_u64() << 16) | (__v_1525.as_canonical_u64() << 24))) + u128::from(((__v_1756.as_canonical_u64() << 0) | (__v_1757.as_canonical_u64() << 8) | (__v_1758.as_canonical_u64() << 16) | (__v_1759.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1760: G = G::from_u8(__u32_bytes[0]); + let __v_1761: G = G::from_u8(__u32_bytes[1]); + let __v_1762: G = G::from_u8(__u32_bytes[2]); + let __v_1763: G = G::from_u8(__u32_bytes[3]); + let __v_1764: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1760; let __vj = __v_1761; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1762; let __vj = __v_1763; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1765: G = G::from_u64(1); + let __v_1766: G = (__v_1764 - __v_1765); + let __v_1767: G = G::from_u64(2); + let __v_1768: G = (__v_1764 - __v_1767); + let __v_1769: G = (__v_1766 * __v_1768); + let __v_1770: G = (__v_1764 * __v_1769); + let __v_1771: G = G::from_u64(0); + if (__v_1770 != __v_1771) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1770.as_canonical_u64(), rhs: __v_1771.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1772: G = if unconstrained { Bytes2::xor(&__v_1603, &__v_1760) } else { bytes2_xor_value(__v_1603, __v_1760, record) }; + let __v_1773: G = if unconstrained { Bytes2::xor(&__v_1604, &__v_1761) } else { bytes2_xor_value(__v_1604, __v_1761, record) }; + let __v_1774: G = if unconstrained { Bytes2::xor(&__v_1605, &__v_1762) } else { bytes2_xor_value(__v_1605, __v_1762, record) }; + let __v_1775: G = if unconstrained { Bytes2::xor(&__v_1602, &__v_1763) } else { bytes2_xor_value(__v_1602, __v_1763, record) }; + let __u32_sum: u128 = u128::from(((__v_1674.as_canonical_u64() << 0) | (__v_1675.as_canonical_u64() << 8) | (__v_1676.as_canonical_u64() << 16) | (__v_1677.as_canonical_u64() << 24))) + u128::from(((__v_1774.as_canonical_u64() << 0) | (__v_1775.as_canonical_u64() << 8) | (__v_1772.as_canonical_u64() << 16) | (__v_1773.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1776: G = G::from_u8(__u32_bytes[0]); + let __v_1777: G = G::from_u8(__u32_bytes[1]); + let __v_1778: G = G::from_u8(__u32_bytes[2]); + let __v_1779: G = G::from_u8(__u32_bytes[3]); + let __v_1780: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1776; let __vj = __v_1777; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1778; let __vj = __v_1779; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1781: G = (__v_1780 * __v_1780); + if (__v_1781 != __v_1780) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1781.as_canonical_u64(), rhs: __v_1780.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1756, &__v_1776) } else { bytes2_xor_split4_value(__v_1756, __v_1776, record) }; + let __v_1782: G = __b2_out.0; + let __v_1783: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1757, &__v_1777) } else { bytes2_xor_split4_value(__v_1757, __v_1777, record) }; + let __v_1784: G = __b2_out.0; + let __v_1785: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1758, &__v_1778) } else { bytes2_xor_split4_value(__v_1758, __v_1778, record) }; + let __v_1786: G = __b2_out.0; + let __v_1787: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1759, &__v_1779) } else { bytes2_xor_split4_value(__v_1759, __v_1779, record) }; + let __v_1788: G = __b2_out.0; + let __v_1789: G = __b2_out.1; + let __v_1790: G = (__v_1784 + __v_1787); + let __v_1791: G = (__v_1786 + __v_1789); + let __v_1792: G = (__v_1788 + __v_1783); + let __v_1793: G = (__v_1782 + __v_1785); + let __u32_sum: u128 = u128::from(((__v_1760.as_canonical_u64() << 0) | (__v_1761.as_canonical_u64() << 8) | (__v_1762.as_canonical_u64() << 16) | (__v_1763.as_canonical_u64() << 24))) + u128::from(((__v_1790.as_canonical_u64() << 0) | (__v_1791.as_canonical_u64() << 8) | (__v_1792.as_canonical_u64() << 16) | (__v_1793.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1794: G = G::from_u8(__u32_bytes[0]); + let __v_1795: G = G::from_u8(__u32_bytes[1]); + let __v_1796: G = G::from_u8(__u32_bytes[2]); + let __v_1797: G = G::from_u8(__u32_bytes[3]); + let __v_1798: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1794; let __vj = __v_1795; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1796; let __vj = __v_1797; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1799: G = G::from_u64(1); + let __v_1800: G = (__v_1798 - __v_1799); + let __v_1801: G = G::from_u64(2); + let __v_1802: G = (__v_1798 - __v_1801); + let __v_1803: G = (__v_1800 * __v_1802); + let __v_1804: G = (__v_1798 * __v_1803); + let __v_1805: G = G::from_u64(0); + if (__v_1804 != __v_1805) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1804.as_canonical_u64(), rhs: __v_1805.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1806: G = if unconstrained { Bytes2::xor(&__v_1774, &__v_1794) } else { bytes2_xor_value(__v_1774, __v_1794, record) }; + let __v_1807: G = if unconstrained { Bytes2::xor(&__v_1775, &__v_1795) } else { bytes2_xor_value(__v_1775, __v_1795, record) }; + let __v_1808: G = if unconstrained { Bytes2::xor(&__v_1772, &__v_1796) } else { bytes2_xor_value(__v_1772, __v_1796, record) }; + let __v_1809: G = if unconstrained { Bytes2::xor(&__v_1773, &__v_1797) } else { bytes2_xor_value(__v_1773, __v_1797, record) }; + let __u32_sum: u128 = u128::from(((__v_1776.as_canonical_u64() << 0) | (__v_1777.as_canonical_u64() << 8) | (__v_1778.as_canonical_u64() << 16) | (__v_1779.as_canonical_u64() << 24))) + u128::from(((__v_1807.as_canonical_u64() << 0) | (__v_1808.as_canonical_u64() << 8) | (__v_1809.as_canonical_u64() << 16) | (__v_1806.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1810: G = G::from_u8(__u32_bytes[0]); + let __v_1811: G = G::from_u8(__u32_bytes[1]); + let __v_1812: G = G::from_u8(__u32_bytes[2]); + let __v_1813: G = G::from_u8(__u32_bytes[3]); + let __v_1814: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1810; let __vj = __v_1811; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1812; let __vj = __v_1813; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1815: G = (__v_1814 * __v_1814); + if (__v_1815 != __v_1814) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1815.as_canonical_u64(), rhs: __v_1814.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1790, &__v_1810) } else { bytes2_xor_split7_value(__v_1790, __v_1810, record) }; + let __v_1816: G = __b2_out.0; + let __v_1817: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1791, &__v_1811) } else { bytes2_xor_split7_value(__v_1791, __v_1811, record) }; + let __v_1818: G = __b2_out.0; + let __v_1819: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1792, &__v_1812) } else { bytes2_xor_split7_value(__v_1792, __v_1812, record) }; + let __v_1820: G = __b2_out.0; + let __v_1821: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1793, &__v_1813) } else { bytes2_xor_split7_value(__v_1793, __v_1813, record) }; + let __v_1822: G = __b2_out.0; + let __v_1823: G = __b2_out.1; + let __v_1824: G = (__v_1816 + __v_1819); + let __v_1825: G = (__v_1818 + __v_1821); + let __v_1826: G = (__v_1820 + __v_1823); + let __v_1827: G = (__v_1822 + __v_1817); + let __u32_sum: u128 = u128::from(((__v_1590.as_canonical_u64() << 0) | (__v_1591.as_canonical_u64() << 8) | (__v_1592.as_canonical_u64() << 16) | (__v_1593.as_canonical_u64() << 24))) + u128::from(((__v_1552.as_canonical_u64() << 0) | (__v_1553.as_canonical_u64() << 8) | (__v_1554.as_canonical_u64() << 16) | (__v_1555.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1828: G = G::from_u8(__u32_bytes[0]); + let __v_1829: G = G::from_u8(__u32_bytes[1]); + let __v_1830: G = G::from_u8(__u32_bytes[2]); + let __v_1831: G = G::from_u8(__u32_bytes[3]); + let __v_1832: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1828; let __vj = __v_1829; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1830; let __vj = __v_1831; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1833: G = G::from_u64(1); + let __v_1834: G = (__v_1832 - __v_1833); + let __v_1835: G = G::from_u64(2); + let __v_1836: G = (__v_1832 - __v_1835); + let __v_1837: G = (__v_1834 * __v_1836); + let __v_1838: G = (__v_1832 * __v_1837); + let __v_1839: G = G::from_u64(0); + if (__v_1838 != __v_1839) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1838.as_canonical_u64(), rhs: __v_1839.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1840: G = if unconstrained { Bytes2::xor(&__v_1671, &__v_1828) } else { bytes2_xor_value(__v_1671, __v_1828, record) }; + let __v_1841: G = if unconstrained { Bytes2::xor(&__v_1672, &__v_1829) } else { bytes2_xor_value(__v_1672, __v_1829, record) }; + let __v_1842: G = if unconstrained { Bytes2::xor(&__v_1673, &__v_1830) } else { bytes2_xor_value(__v_1673, __v_1830, record) }; + let __v_1843: G = if unconstrained { Bytes2::xor(&__v_1670, &__v_1831) } else { bytes2_xor_value(__v_1670, __v_1831, record) }; + let __u32_sum: u128 = u128::from(((__v_1742.as_canonical_u64() << 0) | (__v_1743.as_canonical_u64() << 8) | (__v_1744.as_canonical_u64() << 16) | (__v_1745.as_canonical_u64() << 24))) + u128::from(((__v_1842.as_canonical_u64() << 0) | (__v_1843.as_canonical_u64() << 8) | (__v_1840.as_canonical_u64() << 16) | (__v_1841.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1844: G = G::from_u8(__u32_bytes[0]); + let __v_1845: G = G::from_u8(__u32_bytes[1]); + let __v_1846: G = G::from_u8(__u32_bytes[2]); + let __v_1847: G = G::from_u8(__u32_bytes[3]); + let __v_1848: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1844; let __vj = __v_1845; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1846; let __vj = __v_1847; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1849: G = (__v_1848 * __v_1848); + if (__v_1849 != __v_1848) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1849.as_canonical_u64(), rhs: __v_1848.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1552, &__v_1844) } else { bytes2_xor_split4_value(__v_1552, __v_1844, record) }; + let __v_1850: G = __b2_out.0; + let __v_1851: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1553, &__v_1845) } else { bytes2_xor_split4_value(__v_1553, __v_1845, record) }; + let __v_1852: G = __b2_out.0; + let __v_1853: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1554, &__v_1846) } else { bytes2_xor_split4_value(__v_1554, __v_1846, record) }; + let __v_1854: G = __b2_out.0; + let __v_1855: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1555, &__v_1847) } else { bytes2_xor_split4_value(__v_1555, __v_1847, record) }; + let __v_1856: G = __b2_out.0; + let __v_1857: G = __b2_out.1; + let __v_1858: G = (__v_1852 + __v_1855); + let __v_1859: G = (__v_1854 + __v_1857); + let __v_1860: G = (__v_1856 + __v_1851); + let __v_1861: G = (__v_1850 + __v_1853); + let __u32_sum: u128 = u128::from(((__v_1828.as_canonical_u64() << 0) | (__v_1829.as_canonical_u64() << 8) | (__v_1830.as_canonical_u64() << 16) | (__v_1831.as_canonical_u64() << 24))) + u128::from(((__v_1858.as_canonical_u64() << 0) | (__v_1859.as_canonical_u64() << 8) | (__v_1860.as_canonical_u64() << 16) | (__v_1861.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1862: G = G::from_u8(__u32_bytes[0]); + let __v_1863: G = G::from_u8(__u32_bytes[1]); + let __v_1864: G = G::from_u8(__u32_bytes[2]); + let __v_1865: G = G::from_u8(__u32_bytes[3]); + let __v_1866: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1862; let __vj = __v_1863; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1864; let __vj = __v_1865; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1867: G = G::from_u64(1); + let __v_1868: G = (__v_1866 - __v_1867); + let __v_1869: G = G::from_u64(2); + let __v_1870: G = (__v_1866 - __v_1869); + let __v_1871: G = (__v_1868 * __v_1870); + let __v_1872: G = (__v_1866 * __v_1871); + let __v_1873: G = G::from_u64(0); + if (__v_1872 != __v_1873) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1872.as_canonical_u64(), rhs: __v_1873.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1874: G = if unconstrained { Bytes2::xor(&__v_1842, &__v_1862) } else { bytes2_xor_value(__v_1842, __v_1862, record) }; + let __v_1875: G = if unconstrained { Bytes2::xor(&__v_1843, &__v_1863) } else { bytes2_xor_value(__v_1843, __v_1863, record) }; + let __v_1876: G = if unconstrained { Bytes2::xor(&__v_1840, &__v_1864) } else { bytes2_xor_value(__v_1840, __v_1864, record) }; + let __v_1877: G = if unconstrained { Bytes2::xor(&__v_1841, &__v_1865) } else { bytes2_xor_value(__v_1841, __v_1865, record) }; + let __u32_sum: u128 = u128::from(((__v_1844.as_canonical_u64() << 0) | (__v_1845.as_canonical_u64() << 8) | (__v_1846.as_canonical_u64() << 16) | (__v_1847.as_canonical_u64() << 24))) + u128::from(((__v_1875.as_canonical_u64() << 0) | (__v_1876.as_canonical_u64() << 8) | (__v_1877.as_canonical_u64() << 16) | (__v_1874.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1878: G = G::from_u8(__u32_bytes[0]); + let __v_1879: G = G::from_u8(__u32_bytes[1]); + let __v_1880: G = G::from_u8(__u32_bytes[2]); + let __v_1881: G = G::from_u8(__u32_bytes[3]); + let __v_1882: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1878; let __vj = __v_1879; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1880; let __vj = __v_1881; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1883: G = (__v_1882 * __v_1882); + if (__v_1883 != __v_1882) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1883.as_canonical_u64(), rhs: __v_1882.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1858, &__v_1878) } else { bytes2_xor_split7_value(__v_1858, __v_1878, record) }; + let __v_1884: G = __b2_out.0; + let __v_1885: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1859, &__v_1879) } else { bytes2_xor_split7_value(__v_1859, __v_1879, record) }; + let __v_1886: G = __b2_out.0; + let __v_1887: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1860, &__v_1880) } else { bytes2_xor_split7_value(__v_1860, __v_1880, record) }; + let __v_1888: G = __b2_out.0; + let __v_1889: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1861, &__v_1881) } else { bytes2_xor_split7_value(__v_1861, __v_1881, record) }; + let __v_1890: G = __b2_out.0; + let __v_1891: G = __b2_out.1; + let __v_1892: G = (__v_1884 + __v_1887); + let __v_1893: G = (__v_1886 + __v_1889); + let __v_1894: G = (__v_1888 + __v_1891); + let __v_1895: G = (__v_1890 + __v_1885); + let __u32_sum: u128 = u128::from(((__v_1658.as_canonical_u64() << 0) | (__v_1659.as_canonical_u64() << 8) | (__v_1660.as_canonical_u64() << 16) | (__v_1661.as_canonical_u64() << 24))) + u128::from(((__v_1620.as_canonical_u64() << 0) | (__v_1621.as_canonical_u64() << 8) | (__v_1622.as_canonical_u64() << 16) | (__v_1623.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1896: G = G::from_u8(__u32_bytes[0]); + let __v_1897: G = G::from_u8(__u32_bytes[1]); + let __v_1898: G = G::from_u8(__u32_bytes[2]); + let __v_1899: G = G::from_u8(__u32_bytes[3]); + let __v_1900: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1896; let __vj = __v_1897; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1898; let __vj = __v_1899; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1901: G = G::from_u64(1); + let __v_1902: G = (__v_1900 - __v_1901); + let __v_1903: G = G::from_u64(2); + let __v_1904: G = (__v_1900 - __v_1903); + let __v_1905: G = (__v_1902 * __v_1904); + let __v_1906: G = (__v_1900 * __v_1905); + let __v_1907: G = G::from_u64(0); + if (__v_1906 != __v_1907) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1906.as_canonical_u64(), rhs: __v_1907.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1908: G = if unconstrained { Bytes2::xor(&__v_1739, &__v_1896) } else { bytes2_xor_value(__v_1739, __v_1896, record) }; + let __v_1909: G = if unconstrained { Bytes2::xor(&__v_1740, &__v_1897) } else { bytes2_xor_value(__v_1740, __v_1897, record) }; + let __v_1910: G = if unconstrained { Bytes2::xor(&__v_1741, &__v_1898) } else { bytes2_xor_value(__v_1741, __v_1898, record) }; + let __v_1911: G = if unconstrained { Bytes2::xor(&__v_1738, &__v_1899) } else { bytes2_xor_value(__v_1738, __v_1899, record) }; + let __u32_sum: u128 = u128::from(((__v_1538.as_canonical_u64() << 0) | (__v_1539.as_canonical_u64() << 8) | (__v_1540.as_canonical_u64() << 16) | (__v_1541.as_canonical_u64() << 24))) + u128::from(((__v_1910.as_canonical_u64() << 0) | (__v_1911.as_canonical_u64() << 8) | (__v_1908.as_canonical_u64() << 16) | (__v_1909.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1912: G = G::from_u8(__u32_bytes[0]); + let __v_1913: G = G::from_u8(__u32_bytes[1]); + let __v_1914: G = G::from_u8(__u32_bytes[2]); + let __v_1915: G = G::from_u8(__u32_bytes[3]); + let __v_1916: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1912; let __vj = __v_1913; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1914; let __vj = __v_1915; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1917: G = (__v_1916 * __v_1916); + if (__v_1917 != __v_1916) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1917.as_canonical_u64(), rhs: __v_1916.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1620, &__v_1912) } else { bytes2_xor_split4_value(__v_1620, __v_1912, record) }; + let __v_1918: G = __b2_out.0; + let __v_1919: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1621, &__v_1913) } else { bytes2_xor_split4_value(__v_1621, __v_1913, record) }; + let __v_1920: G = __b2_out.0; + let __v_1921: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1622, &__v_1914) } else { bytes2_xor_split4_value(__v_1622, __v_1914, record) }; + let __v_1922: G = __b2_out.0; + let __v_1923: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1623, &__v_1915) } else { bytes2_xor_split4_value(__v_1623, __v_1915, record) }; + let __v_1924: G = __b2_out.0; + let __v_1925: G = __b2_out.1; + let __v_1926: G = (__v_1920 + __v_1923); + let __v_1927: G = (__v_1922 + __v_1925); + let __v_1928: G = (__v_1924 + __v_1919); + let __v_1929: G = (__v_1918 + __v_1921); + let __u32_sum: u128 = u128::from(((__v_1896.as_canonical_u64() << 0) | (__v_1897.as_canonical_u64() << 8) | (__v_1898.as_canonical_u64() << 16) | (__v_1899.as_canonical_u64() << 24))) + u128::from(((__v_1926.as_canonical_u64() << 0) | (__v_1927.as_canonical_u64() << 8) | (__v_1928.as_canonical_u64() << 16) | (__v_1929.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1930: G = G::from_u8(__u32_bytes[0]); + let __v_1931: G = G::from_u8(__u32_bytes[1]); + let __v_1932: G = G::from_u8(__u32_bytes[2]); + let __v_1933: G = G::from_u8(__u32_bytes[3]); + let __v_1934: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1930; let __vj = __v_1931; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1932; let __vj = __v_1933; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1935: G = G::from_u64(1); + let __v_1936: G = (__v_1934 - __v_1935); + let __v_1937: G = G::from_u64(2); + let __v_1938: G = (__v_1934 - __v_1937); + let __v_1939: G = (__v_1936 * __v_1938); + let __v_1940: G = (__v_1934 * __v_1939); + let __v_1941: G = G::from_u64(0); + if (__v_1940 != __v_1941) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1940.as_canonical_u64(), rhs: __v_1941.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1942: G = if unconstrained { Bytes2::xor(&__v_1910, &__v_1930) } else { bytes2_xor_value(__v_1910, __v_1930, record) }; + let __v_1943: G = if unconstrained { Bytes2::xor(&__v_1911, &__v_1931) } else { bytes2_xor_value(__v_1911, __v_1931, record) }; + let __v_1944: G = if unconstrained { Bytes2::xor(&__v_1908, &__v_1932) } else { bytes2_xor_value(__v_1908, __v_1932, record) }; + let __v_1945: G = if unconstrained { Bytes2::xor(&__v_1909, &__v_1933) } else { bytes2_xor_value(__v_1909, __v_1933, record) }; + let __u32_sum: u128 = u128::from(((__v_1912.as_canonical_u64() << 0) | (__v_1913.as_canonical_u64() << 8) | (__v_1914.as_canonical_u64() << 16) | (__v_1915.as_canonical_u64() << 24))) + u128::from(((__v_1943.as_canonical_u64() << 0) | (__v_1944.as_canonical_u64() << 8) | (__v_1945.as_canonical_u64() << 16) | (__v_1942.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1946: G = G::from_u8(__u32_bytes[0]); + let __v_1947: G = G::from_u8(__u32_bytes[1]); + let __v_1948: G = G::from_u8(__u32_bytes[2]); + let __v_1949: G = G::from_u8(__u32_bytes[3]); + let __v_1950: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1946; let __vj = __v_1947; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1948; let __vj = __v_1949; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1951: G = (__v_1950 * __v_1950); + if (__v_1951 != __v_1950) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1951.as_canonical_u64(), rhs: __v_1950.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1926, &__v_1946) } else { bytes2_xor_split7_value(__v_1926, __v_1946, record) }; + let __v_1952: G = __b2_out.0; + let __v_1953: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1927, &__v_1947) } else { bytes2_xor_split7_value(__v_1927, __v_1947, record) }; + let __v_1954: G = __b2_out.0; + let __v_1955: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1928, &__v_1948) } else { bytes2_xor_split7_value(__v_1928, __v_1948, record) }; + let __v_1956: G = __b2_out.0; + let __v_1957: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1929, &__v_1949) } else { bytes2_xor_split7_value(__v_1929, __v_1949, record) }; + let __v_1958: G = __b2_out.0; + let __v_1959: G = __b2_out.1; + let __v_1960: G = (__v_1952 + __v_1955); + let __v_1961: G = (__v_1954 + __v_1957); + let __v_1962: G = (__v_1956 + __v_1959); + let __v_1963: G = (__v_1958 + __v_1953); + let __u32_sum: u128 = u128::from(((__v_1726.as_canonical_u64() << 0) | (__v_1727.as_canonical_u64() << 8) | (__v_1728.as_canonical_u64() << 16) | (__v_1729.as_canonical_u64() << 24))) + u128::from(((__v_1688.as_canonical_u64() << 0) | (__v_1689.as_canonical_u64() << 8) | (__v_1690.as_canonical_u64() << 16) | (__v_1691.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1964: G = G::from_u8(__u32_bytes[0]); + let __v_1965: G = G::from_u8(__u32_bytes[1]); + let __v_1966: G = G::from_u8(__u32_bytes[2]); + let __v_1967: G = G::from_u8(__u32_bytes[3]); + let __v_1968: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1964; let __vj = __v_1965; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1966; let __vj = __v_1967; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1969: G = G::from_u64(1); + let __v_1970: G = (__v_1968 - __v_1969); + let __v_1971: G = G::from_u64(2); + let __v_1972: G = (__v_1968 - __v_1971); + let __v_1973: G = (__v_1970 * __v_1972); + let __v_1974: G = (__v_1968 * __v_1973); + let __v_1975: G = G::from_u64(0); + if (__v_1974 != __v_1975) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1974.as_canonical_u64(), rhs: __v_1975.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_1976: G = if unconstrained { Bytes2::xor(&__v_1535, &__v_1964) } else { bytes2_xor_value(__v_1535, __v_1964, record) }; + let __v_1977: G = if unconstrained { Bytes2::xor(&__v_1536, &__v_1965) } else { bytes2_xor_value(__v_1536, __v_1965, record) }; + let __v_1978: G = if unconstrained { Bytes2::xor(&__v_1537, &__v_1966) } else { bytes2_xor_value(__v_1537, __v_1966, record) }; + let __v_1979: G = if unconstrained { Bytes2::xor(&__v_1534, &__v_1967) } else { bytes2_xor_value(__v_1534, __v_1967, record) }; + let __u32_sum: u128 = u128::from(((__v_1606.as_canonical_u64() << 0) | (__v_1607.as_canonical_u64() << 8) | (__v_1608.as_canonical_u64() << 16) | (__v_1609.as_canonical_u64() << 24))) + u128::from(((__v_1978.as_canonical_u64() << 0) | (__v_1979.as_canonical_u64() << 8) | (__v_1976.as_canonical_u64() << 16) | (__v_1977.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1980: G = G::from_u8(__u32_bytes[0]); + let __v_1981: G = G::from_u8(__u32_bytes[1]); + let __v_1982: G = G::from_u8(__u32_bytes[2]); + let __v_1983: G = G::from_u8(__u32_bytes[3]); + let __v_1984: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1980; let __vj = __v_1981; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_1982; let __vj = __v_1983; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_1985: G = (__v_1984 * __v_1984); + if (__v_1985 != __v_1984) { + return Err(ExecError::AssertEqMismatch { lhs: __v_1985.as_canonical_u64(), rhs: __v_1984.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1688, &__v_1980) } else { bytes2_xor_split4_value(__v_1688, __v_1980, record) }; + let __v_1986: G = __b2_out.0; + let __v_1987: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1689, &__v_1981) } else { bytes2_xor_split4_value(__v_1689, __v_1981, record) }; + let __v_1988: G = __b2_out.0; + let __v_1989: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1690, &__v_1982) } else { bytes2_xor_split4_value(__v_1690, __v_1982, record) }; + let __v_1990: G = __b2_out.0; + let __v_1991: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1691, &__v_1983) } else { bytes2_xor_split4_value(__v_1691, __v_1983, record) }; + let __v_1992: G = __b2_out.0; + let __v_1993: G = __b2_out.1; + let __v_1994: G = (__v_1988 + __v_1991); + let __v_1995: G = (__v_1990 + __v_1993); + let __v_1996: G = (__v_1992 + __v_1987); + let __v_1997: G = (__v_1986 + __v_1989); + let __u32_sum: u128 = u128::from(((__v_1964.as_canonical_u64() << 0) | (__v_1965.as_canonical_u64() << 8) | (__v_1966.as_canonical_u64() << 16) | (__v_1967.as_canonical_u64() << 24))) + u128::from(((__v_1994.as_canonical_u64() << 0) | (__v_1995.as_canonical_u64() << 8) | (__v_1996.as_canonical_u64() << 16) | (__v_1997.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_1998: G = G::from_u8(__u32_bytes[0]); + let __v_1999: G = G::from_u8(__u32_bytes[1]); + let __v_2000: G = G::from_u8(__u32_bytes[2]); + let __v_2001: G = G::from_u8(__u32_bytes[3]); + let __v_2002: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_1998; let __vj = __v_1999; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2000; let __vj = __v_2001; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2003: G = G::from_u64(1); + let __v_2004: G = (__v_2002 - __v_2003); + let __v_2005: G = G::from_u64(2); + let __v_2006: G = (__v_2002 - __v_2005); + let __v_2007: G = (__v_2004 * __v_2006); + let __v_2008: G = (__v_2002 * __v_2007); + let __v_2009: G = G::from_u64(0); + if (__v_2008 != __v_2009) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2008.as_canonical_u64(), rhs: __v_2009.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2010: G = if unconstrained { Bytes2::xor(&__v_1978, &__v_1998) } else { bytes2_xor_value(__v_1978, __v_1998, record) }; + let __v_2011: G = if unconstrained { Bytes2::xor(&__v_1979, &__v_1999) } else { bytes2_xor_value(__v_1979, __v_1999, record) }; + let __v_2012: G = if unconstrained { Bytes2::xor(&__v_1976, &__v_2000) } else { bytes2_xor_value(__v_1976, __v_2000, record) }; + let __v_2013: G = if unconstrained { Bytes2::xor(&__v_1977, &__v_2001) } else { bytes2_xor_value(__v_1977, __v_2001, record) }; + let __u32_sum: u128 = u128::from(((__v_1980.as_canonical_u64() << 0) | (__v_1981.as_canonical_u64() << 8) | (__v_1982.as_canonical_u64() << 16) | (__v_1983.as_canonical_u64() << 24))) + u128::from(((__v_2011.as_canonical_u64() << 0) | (__v_2012.as_canonical_u64() << 8) | (__v_2013.as_canonical_u64() << 16) | (__v_2010.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2014: G = G::from_u8(__u32_bytes[0]); + let __v_2015: G = G::from_u8(__u32_bytes[1]); + let __v_2016: G = G::from_u8(__u32_bytes[2]); + let __v_2017: G = G::from_u8(__u32_bytes[3]); + let __v_2018: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2014; let __vj = __v_2015; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2016; let __vj = __v_2017; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2019: G = (__v_2018 * __v_2018); + if (__v_2019 != __v_2018) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2019.as_canonical_u64(), rhs: __v_2018.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1994, &__v_2014) } else { bytes2_xor_split7_value(__v_1994, __v_2014, record) }; + let __v_2020: G = __b2_out.0; + let __v_2021: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1995, &__v_2015) } else { bytes2_xor_split7_value(__v_1995, __v_2015, record) }; + let __v_2022: G = __b2_out.0; + let __v_2023: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1996, &__v_2016) } else { bytes2_xor_split7_value(__v_1996, __v_2016, record) }; + let __v_2024: G = __b2_out.0; + let __v_2025: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_1997, &__v_2017) } else { bytes2_xor_split7_value(__v_1997, __v_2017, record) }; + let __v_2026: G = __b2_out.0; + let __v_2027: G = __b2_out.1; + let __v_2028: G = (__v_2020 + __v_2023); + let __v_2029: G = (__v_2022 + __v_2025); + let __v_2030: G = (__v_2024 + __v_2027); + let __v_2031: G = (__v_2026 + __v_2021); + let __u32_sum: u128 = u128::from(((__v_1794.as_canonical_u64() << 0) | (__v_1795.as_canonical_u64() << 8) | (__v_1796.as_canonical_u64() << 16) | (__v_1797.as_canonical_u64() << 24))) + u128::from(((__v_1892.as_canonical_u64() << 0) | (__v_1893.as_canonical_u64() << 8) | (__v_1894.as_canonical_u64() << 16) | (__v_1895.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2032: G = G::from_u8(__u32_bytes[0]); + let __v_2033: G = G::from_u8(__u32_bytes[1]); + let __v_2034: G = G::from_u8(__u32_bytes[2]); + let __v_2035: G = G::from_u8(__u32_bytes[3]); + let __v_2036: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2032; let __vj = __v_2033; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2034; let __vj = __v_2035; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2037: G = G::from_u64(1); + let __v_2038: G = (__v_2036 - __v_2037); + let __v_2039: G = G::from_u64(2); + let __v_2040: G = (__v_2036 - __v_2039); + let __v_2041: G = (__v_2038 * __v_2040); + let __v_2042: G = (__v_2036 * __v_2041); + let __v_2043: G = G::from_u64(0); + if (__v_2042 != __v_2043) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2042.as_canonical_u64(), rhs: __v_2043.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2044: G = if unconstrained { Bytes2::xor(&__v_2011, &__v_2032) } else { bytes2_xor_value(__v_2011, __v_2032, record) }; + let __v_2045: G = if unconstrained { Bytes2::xor(&__v_2012, &__v_2033) } else { bytes2_xor_value(__v_2012, __v_2033, record) }; + let __v_2046: G = if unconstrained { Bytes2::xor(&__v_2013, &__v_2034) } else { bytes2_xor_value(__v_2013, __v_2034, record) }; + let __v_2047: G = if unconstrained { Bytes2::xor(&__v_2010, &__v_2035) } else { bytes2_xor_value(__v_2010, __v_2035, record) }; + let __u32_sum: u128 = u128::from(((__v_1946.as_canonical_u64() << 0) | (__v_1947.as_canonical_u64() << 8) | (__v_1948.as_canonical_u64() << 16) | (__v_1949.as_canonical_u64() << 24))) + u128::from(((__v_2046.as_canonical_u64() << 0) | (__v_2047.as_canonical_u64() << 8) | (__v_2044.as_canonical_u64() << 16) | (__v_2045.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2048: G = G::from_u8(__u32_bytes[0]); + let __v_2049: G = G::from_u8(__u32_bytes[1]); + let __v_2050: G = G::from_u8(__u32_bytes[2]); + let __v_2051: G = G::from_u8(__u32_bytes[3]); + let __v_2052: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2048; let __vj = __v_2049; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2050; let __vj = __v_2051; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2053: G = (__v_2052 * __v_2052); + if (__v_2053 != __v_2052) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2053.as_canonical_u64(), rhs: __v_2052.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1892, &__v_2048) } else { bytes2_xor_split4_value(__v_1892, __v_2048, record) }; + let __v_2054: G = __b2_out.0; + let __v_2055: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1893, &__v_2049) } else { bytes2_xor_split4_value(__v_1893, __v_2049, record) }; + let __v_2056: G = __b2_out.0; + let __v_2057: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1894, &__v_2050) } else { bytes2_xor_split4_value(__v_1894, __v_2050, record) }; + let __v_2058: G = __b2_out.0; + let __v_2059: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1895, &__v_2051) } else { bytes2_xor_split4_value(__v_1895, __v_2051, record) }; + let __v_2060: G = __b2_out.0; + let __v_2061: G = __b2_out.1; + let __v_2062: G = (__v_2056 + __v_2059); + let __v_2063: G = (__v_2058 + __v_2061); + let __v_2064: G = (__v_2060 + __v_2055); + let __v_2065: G = (__v_2054 + __v_2057); + let __u32_sum: u128 = u128::from(((__v_2032.as_canonical_u64() << 0) | (__v_2033.as_canonical_u64() << 8) | (__v_2034.as_canonical_u64() << 16) | (__v_2035.as_canonical_u64() << 24))) + u128::from(((__v_2062.as_canonical_u64() << 0) | (__v_2063.as_canonical_u64() << 8) | (__v_2064.as_canonical_u64() << 16) | (__v_2065.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2066: G = G::from_u8(__u32_bytes[0]); + let __v_2067: G = G::from_u8(__u32_bytes[1]); + let __v_2068: G = G::from_u8(__u32_bytes[2]); + let __v_2069: G = G::from_u8(__u32_bytes[3]); + let __v_2070: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2066; let __vj = __v_2067; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2068; let __vj = __v_2069; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2071: G = G::from_u64(1); + let __v_2072: G = (__v_2070 - __v_2071); + let __v_2073: G = G::from_u64(2); + let __v_2074: G = (__v_2070 - __v_2073); + let __v_2075: G = (__v_2072 * __v_2074); + let __v_2076: G = (__v_2070 * __v_2075); + let __v_2077: G = G::from_u64(0); + if (__v_2076 != __v_2077) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2076.as_canonical_u64(), rhs: __v_2077.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2078: G = if unconstrained { Bytes2::xor(&__v_2046, &__v_2066) } else { bytes2_xor_value(__v_2046, __v_2066, record) }; + let __v_2079: G = if unconstrained { Bytes2::xor(&__v_2047, &__v_2067) } else { bytes2_xor_value(__v_2047, __v_2067, record) }; + let __v_2080: G = if unconstrained { Bytes2::xor(&__v_2044, &__v_2068) } else { bytes2_xor_value(__v_2044, __v_2068, record) }; + let __v_2081: G = if unconstrained { Bytes2::xor(&__v_2045, &__v_2069) } else { bytes2_xor_value(__v_2045, __v_2069, record) }; + let __u32_sum: u128 = u128::from(((__v_2048.as_canonical_u64() << 0) | (__v_2049.as_canonical_u64() << 8) | (__v_2050.as_canonical_u64() << 16) | (__v_2051.as_canonical_u64() << 24))) + u128::from(((__v_2079.as_canonical_u64() << 0) | (__v_2080.as_canonical_u64() << 8) | (__v_2081.as_canonical_u64() << 16) | (__v_2078.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2082: G = G::from_u8(__u32_bytes[0]); + let __v_2083: G = G::from_u8(__u32_bytes[1]); + let __v_2084: G = G::from_u8(__u32_bytes[2]); + let __v_2085: G = G::from_u8(__u32_bytes[3]); + let __v_2086: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2082; let __vj = __v_2083; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2084; let __vj = __v_2085; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2087: G = (__v_2086 * __v_2086); + if (__v_2087 != __v_2086) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2087.as_canonical_u64(), rhs: __v_2086.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2062, &__v_2082) } else { bytes2_xor_split7_value(__v_2062, __v_2082, record) }; + let __v_2088: G = __b2_out.0; + let __v_2089: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2063, &__v_2083) } else { bytes2_xor_split7_value(__v_2063, __v_2083, record) }; + let __v_2090: G = __b2_out.0; + let __v_2091: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2064, &__v_2084) } else { bytes2_xor_split7_value(__v_2064, __v_2084, record) }; + let __v_2092: G = __b2_out.0; + let __v_2093: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2065, &__v_2085) } else { bytes2_xor_split7_value(__v_2065, __v_2085, record) }; + let __v_2094: G = __b2_out.0; + let __v_2095: G = __b2_out.1; + let __v_2096: G = (__v_2088 + __v_2091); + let __v_2097: G = (__v_2090 + __v_2093); + let __v_2098: G = (__v_2092 + __v_2095); + let __v_2099: G = (__v_2094 + __v_2089); + let __u32_sum: u128 = u128::from(((__v_1862.as_canonical_u64() << 0) | (__v_1863.as_canonical_u64() << 8) | (__v_1864.as_canonical_u64() << 16) | (__v_1865.as_canonical_u64() << 24))) + u128::from(((__v_1960.as_canonical_u64() << 0) | (__v_1961.as_canonical_u64() << 8) | (__v_1962.as_canonical_u64() << 16) | (__v_1963.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2100: G = G::from_u8(__u32_bytes[0]); + let __v_2101: G = G::from_u8(__u32_bytes[1]); + let __v_2102: G = G::from_u8(__u32_bytes[2]); + let __v_2103: G = G::from_u8(__u32_bytes[3]); + let __v_2104: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2100; let __vj = __v_2101; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2102; let __vj = __v_2103; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2105: G = G::from_u64(1); + let __v_2106: G = (__v_2104 - __v_2105); + let __v_2107: G = G::from_u64(2); + let __v_2108: G = (__v_2104 - __v_2107); + let __v_2109: G = (__v_2106 * __v_2108); + let __v_2110: G = (__v_2104 * __v_2109); + let __v_2111: G = G::from_u64(0); + if (__v_2110 != __v_2111) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2110.as_canonical_u64(), rhs: __v_2111.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2112: G = if unconstrained { Bytes2::xor(&__v_1807, &__v_2100) } else { bytes2_xor_value(__v_1807, __v_2100, record) }; + let __v_2113: G = if unconstrained { Bytes2::xor(&__v_1808, &__v_2101) } else { bytes2_xor_value(__v_1808, __v_2101, record) }; + let __v_2114: G = if unconstrained { Bytes2::xor(&__v_1809, &__v_2102) } else { bytes2_xor_value(__v_1809, __v_2102, record) }; + let __v_2115: G = if unconstrained { Bytes2::xor(&__v_1806, &__v_2103) } else { bytes2_xor_value(__v_1806, __v_2103, record) }; + let __u32_sum: u128 = u128::from(((__v_2014.as_canonical_u64() << 0) | (__v_2015.as_canonical_u64() << 8) | (__v_2016.as_canonical_u64() << 16) | (__v_2017.as_canonical_u64() << 24))) + u128::from(((__v_2114.as_canonical_u64() << 0) | (__v_2115.as_canonical_u64() << 8) | (__v_2112.as_canonical_u64() << 16) | (__v_2113.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2116: G = G::from_u8(__u32_bytes[0]); + let __v_2117: G = G::from_u8(__u32_bytes[1]); + let __v_2118: G = G::from_u8(__u32_bytes[2]); + let __v_2119: G = G::from_u8(__u32_bytes[3]); + let __v_2120: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2116; let __vj = __v_2117; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2118; let __vj = __v_2119; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2121: G = (__v_2120 * __v_2120); + if (__v_2121 != __v_2120) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2121.as_canonical_u64(), rhs: __v_2120.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1960, &__v_2116) } else { bytes2_xor_split4_value(__v_1960, __v_2116, record) }; + let __v_2122: G = __b2_out.0; + let __v_2123: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1961, &__v_2117) } else { bytes2_xor_split4_value(__v_1961, __v_2117, record) }; + let __v_2124: G = __b2_out.0; + let __v_2125: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1962, &__v_2118) } else { bytes2_xor_split4_value(__v_1962, __v_2118, record) }; + let __v_2126: G = __b2_out.0; + let __v_2127: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1963, &__v_2119) } else { bytes2_xor_split4_value(__v_1963, __v_2119, record) }; + let __v_2128: G = __b2_out.0; + let __v_2129: G = __b2_out.1; + let __v_2130: G = (__v_2124 + __v_2127); + let __v_2131: G = (__v_2126 + __v_2129); + let __v_2132: G = (__v_2128 + __v_2123); + let __v_2133: G = (__v_2122 + __v_2125); + let __u32_sum: u128 = u128::from(((__v_2100.as_canonical_u64() << 0) | (__v_2101.as_canonical_u64() << 8) | (__v_2102.as_canonical_u64() << 16) | (__v_2103.as_canonical_u64() << 24))) + u128::from(((__v_2130.as_canonical_u64() << 0) | (__v_2131.as_canonical_u64() << 8) | (__v_2132.as_canonical_u64() << 16) | (__v_2133.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2134: G = G::from_u8(__u32_bytes[0]); + let __v_2135: G = G::from_u8(__u32_bytes[1]); + let __v_2136: G = G::from_u8(__u32_bytes[2]); + let __v_2137: G = G::from_u8(__u32_bytes[3]); + let __v_2138: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2134; let __vj = __v_2135; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2136; let __vj = __v_2137; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2139: G = G::from_u64(1); + let __v_2140: G = (__v_2138 - __v_2139); + let __v_2141: G = G::from_u64(2); + let __v_2142: G = (__v_2138 - __v_2141); + let __v_2143: G = (__v_2140 * __v_2142); + let __v_2144: G = (__v_2138 * __v_2143); + let __v_2145: G = G::from_u64(0); + if (__v_2144 != __v_2145) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2144.as_canonical_u64(), rhs: __v_2145.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2146: G = if unconstrained { Bytes2::xor(&__v_2114, &__v_2134) } else { bytes2_xor_value(__v_2114, __v_2134, record) }; + let __v_2147: G = if unconstrained { Bytes2::xor(&__v_2115, &__v_2135) } else { bytes2_xor_value(__v_2115, __v_2135, record) }; + let __v_2148: G = if unconstrained { Bytes2::xor(&__v_2112, &__v_2136) } else { bytes2_xor_value(__v_2112, __v_2136, record) }; + let __v_2149: G = if unconstrained { Bytes2::xor(&__v_2113, &__v_2137) } else { bytes2_xor_value(__v_2113, __v_2137, record) }; + let __u32_sum: u128 = u128::from(((__v_2116.as_canonical_u64() << 0) | (__v_2117.as_canonical_u64() << 8) | (__v_2118.as_canonical_u64() << 16) | (__v_2119.as_canonical_u64() << 24))) + u128::from(((__v_2147.as_canonical_u64() << 0) | (__v_2148.as_canonical_u64() << 8) | (__v_2149.as_canonical_u64() << 16) | (__v_2146.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2150: G = G::from_u8(__u32_bytes[0]); + let __v_2151: G = G::from_u8(__u32_bytes[1]); + let __v_2152: G = G::from_u8(__u32_bytes[2]); + let __v_2153: G = G::from_u8(__u32_bytes[3]); + let __v_2154: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2150; let __vj = __v_2151; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2152; let __vj = __v_2153; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2155: G = (__v_2154 * __v_2154); + if (__v_2155 != __v_2154) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2155.as_canonical_u64(), rhs: __v_2154.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2130, &__v_2150) } else { bytes2_xor_split7_value(__v_2130, __v_2150, record) }; + let __v_2156: G = __b2_out.0; + let __v_2157: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2131, &__v_2151) } else { bytes2_xor_split7_value(__v_2131, __v_2151, record) }; + let __v_2158: G = __b2_out.0; + let __v_2159: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2132, &__v_2152) } else { bytes2_xor_split7_value(__v_2132, __v_2152, record) }; + let __v_2160: G = __b2_out.0; + let __v_2161: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2133, &__v_2153) } else { bytes2_xor_split7_value(__v_2133, __v_2153, record) }; + let __v_2162: G = __b2_out.0; + let __v_2163: G = __b2_out.1; + let __v_2164: G = (__v_2156 + __v_2159); + let __v_2165: G = (__v_2158 + __v_2161); + let __v_2166: G = (__v_2160 + __v_2163); + let __v_2167: G = (__v_2162 + __v_2157); + let __u32_sum: u128 = u128::from(((__v_1930.as_canonical_u64() << 0) | (__v_1931.as_canonical_u64() << 8) | (__v_1932.as_canonical_u64() << 16) | (__v_1933.as_canonical_u64() << 24))) + u128::from(((__v_2028.as_canonical_u64() << 0) | (__v_2029.as_canonical_u64() << 8) | (__v_2030.as_canonical_u64() << 16) | (__v_2031.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2168: G = G::from_u8(__u32_bytes[0]); + let __v_2169: G = G::from_u8(__u32_bytes[1]); + let __v_2170: G = G::from_u8(__u32_bytes[2]); + let __v_2171: G = G::from_u8(__u32_bytes[3]); + let __v_2172: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2168; let __vj = __v_2169; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2170; let __vj = __v_2171; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2173: G = G::from_u64(1); + let __v_2174: G = (__v_2172 - __v_2173); + let __v_2175: G = G::from_u64(2); + let __v_2176: G = (__v_2172 - __v_2175); + let __v_2177: G = (__v_2174 * __v_2176); + let __v_2178: G = (__v_2172 * __v_2177); + let __v_2179: G = G::from_u64(0); + if (__v_2178 != __v_2179) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2178.as_canonical_u64(), rhs: __v_2179.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2180: G = if unconstrained { Bytes2::xor(&__v_1875, &__v_2168) } else { bytes2_xor_value(__v_1875, __v_2168, record) }; + let __v_2181: G = if unconstrained { Bytes2::xor(&__v_1876, &__v_2169) } else { bytes2_xor_value(__v_1876, __v_2169, record) }; + let __v_2182: G = if unconstrained { Bytes2::xor(&__v_1877, &__v_2170) } else { bytes2_xor_value(__v_1877, __v_2170, record) }; + let __v_2183: G = if unconstrained { Bytes2::xor(&__v_1874, &__v_2171) } else { bytes2_xor_value(__v_1874, __v_2171, record) }; + let __u32_sum: u128 = u128::from(((__v_1810.as_canonical_u64() << 0) | (__v_1811.as_canonical_u64() << 8) | (__v_1812.as_canonical_u64() << 16) | (__v_1813.as_canonical_u64() << 24))) + u128::from(((__v_2182.as_canonical_u64() << 0) | (__v_2183.as_canonical_u64() << 8) | (__v_2180.as_canonical_u64() << 16) | (__v_2181.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2184: G = G::from_u8(__u32_bytes[0]); + let __v_2185: G = G::from_u8(__u32_bytes[1]); + let __v_2186: G = G::from_u8(__u32_bytes[2]); + let __v_2187: G = G::from_u8(__u32_bytes[3]); + let __v_2188: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2184; let __vj = __v_2185; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2186; let __vj = __v_2187; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2189: G = (__v_2188 * __v_2188); + if (__v_2189 != __v_2188) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2189.as_canonical_u64(), rhs: __v_2188.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2028, &__v_2184) } else { bytes2_xor_split4_value(__v_2028, __v_2184, record) }; + let __v_2190: G = __b2_out.0; + let __v_2191: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2029, &__v_2185) } else { bytes2_xor_split4_value(__v_2029, __v_2185, record) }; + let __v_2192: G = __b2_out.0; + let __v_2193: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2030, &__v_2186) } else { bytes2_xor_split4_value(__v_2030, __v_2186, record) }; + let __v_2194: G = __b2_out.0; + let __v_2195: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2031, &__v_2187) } else { bytes2_xor_split4_value(__v_2031, __v_2187, record) }; + let __v_2196: G = __b2_out.0; + let __v_2197: G = __b2_out.1; + let __v_2198: G = (__v_2192 + __v_2195); + let __v_2199: G = (__v_2194 + __v_2197); + let __v_2200: G = (__v_2196 + __v_2191); + let __v_2201: G = (__v_2190 + __v_2193); + let __u32_sum: u128 = u128::from(((__v_2168.as_canonical_u64() << 0) | (__v_2169.as_canonical_u64() << 8) | (__v_2170.as_canonical_u64() << 16) | (__v_2171.as_canonical_u64() << 24))) + u128::from(((__v_2198.as_canonical_u64() << 0) | (__v_2199.as_canonical_u64() << 8) | (__v_2200.as_canonical_u64() << 16) | (__v_2201.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2202: G = G::from_u8(__u32_bytes[0]); + let __v_2203: G = G::from_u8(__u32_bytes[1]); + let __v_2204: G = G::from_u8(__u32_bytes[2]); + let __v_2205: G = G::from_u8(__u32_bytes[3]); + let __v_2206: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2202; let __vj = __v_2203; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2204; let __vj = __v_2205; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2207: G = G::from_u64(1); + let __v_2208: G = (__v_2206 - __v_2207); + let __v_2209: G = G::from_u64(2); + let __v_2210: G = (__v_2206 - __v_2209); + let __v_2211: G = (__v_2208 * __v_2210); + let __v_2212: G = (__v_2206 * __v_2211); + let __v_2213: G = G::from_u64(0); + if (__v_2212 != __v_2213) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2212.as_canonical_u64(), rhs: __v_2213.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2214: G = if unconstrained { Bytes2::xor(&__v_2182, &__v_2202) } else { bytes2_xor_value(__v_2182, __v_2202, record) }; + let __v_2215: G = if unconstrained { Bytes2::xor(&__v_2183, &__v_2203) } else { bytes2_xor_value(__v_2183, __v_2203, record) }; + let __v_2216: G = if unconstrained { Bytes2::xor(&__v_2180, &__v_2204) } else { bytes2_xor_value(__v_2180, __v_2204, record) }; + let __v_2217: G = if unconstrained { Bytes2::xor(&__v_2181, &__v_2205) } else { bytes2_xor_value(__v_2181, __v_2205, record) }; + let __u32_sum: u128 = u128::from(((__v_2184.as_canonical_u64() << 0) | (__v_2185.as_canonical_u64() << 8) | (__v_2186.as_canonical_u64() << 16) | (__v_2187.as_canonical_u64() << 24))) + u128::from(((__v_2215.as_canonical_u64() << 0) | (__v_2216.as_canonical_u64() << 8) | (__v_2217.as_canonical_u64() << 16) | (__v_2214.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2218: G = G::from_u8(__u32_bytes[0]); + let __v_2219: G = G::from_u8(__u32_bytes[1]); + let __v_2220: G = G::from_u8(__u32_bytes[2]); + let __v_2221: G = G::from_u8(__u32_bytes[3]); + let __v_2222: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2218; let __vj = __v_2219; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2220; let __vj = __v_2221; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2223: G = (__v_2222 * __v_2222); + if (__v_2223 != __v_2222) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2223.as_canonical_u64(), rhs: __v_2222.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2198, &__v_2218) } else { bytes2_xor_split7_value(__v_2198, __v_2218, record) }; + let __v_2224: G = __b2_out.0; + let __v_2225: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2199, &__v_2219) } else { bytes2_xor_split7_value(__v_2199, __v_2219, record) }; + let __v_2226: G = __b2_out.0; + let __v_2227: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2200, &__v_2220) } else { bytes2_xor_split7_value(__v_2200, __v_2220, record) }; + let __v_2228: G = __b2_out.0; + let __v_2229: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2201, &__v_2221) } else { bytes2_xor_split7_value(__v_2201, __v_2221, record) }; + let __v_2230: G = __b2_out.0; + let __v_2231: G = __b2_out.1; + let __v_2232: G = (__v_2224 + __v_2227); + let __v_2233: G = (__v_2226 + __v_2229); + let __v_2234: G = (__v_2228 + __v_2231); + let __v_2235: G = (__v_2230 + __v_2225); + let __u32_sum: u128 = u128::from(((__v_1998.as_canonical_u64() << 0) | (__v_1999.as_canonical_u64() << 8) | (__v_2000.as_canonical_u64() << 16) | (__v_2001.as_canonical_u64() << 24))) + u128::from(((__v_1824.as_canonical_u64() << 0) | (__v_1825.as_canonical_u64() << 8) | (__v_1826.as_canonical_u64() << 16) | (__v_1827.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2236: G = G::from_u8(__u32_bytes[0]); + let __v_2237: G = G::from_u8(__u32_bytes[1]); + let __v_2238: G = G::from_u8(__u32_bytes[2]); + let __v_2239: G = G::from_u8(__u32_bytes[3]); + let __v_2240: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2236; let __vj = __v_2237; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2238; let __vj = __v_2239; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2241: G = G::from_u64(1); + let __v_2242: G = (__v_2240 - __v_2241); + let __v_2243: G = G::from_u64(2); + let __v_2244: G = (__v_2240 - __v_2243); + let __v_2245: G = (__v_2242 * __v_2244); + let __v_2246: G = (__v_2240 * __v_2245); + let __v_2247: G = G::from_u64(0); + if (__v_2246 != __v_2247) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2246.as_canonical_u64(), rhs: __v_2247.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2248: G = if unconstrained { Bytes2::xor(&__v_1943, &__v_2236) } else { bytes2_xor_value(__v_1943, __v_2236, record) }; + let __v_2249: G = if unconstrained { Bytes2::xor(&__v_1944, &__v_2237) } else { bytes2_xor_value(__v_1944, __v_2237, record) }; + let __v_2250: G = if unconstrained { Bytes2::xor(&__v_1945, &__v_2238) } else { bytes2_xor_value(__v_1945, __v_2238, record) }; + let __v_2251: G = if unconstrained { Bytes2::xor(&__v_1942, &__v_2239) } else { bytes2_xor_value(__v_1942, __v_2239, record) }; + let __u32_sum: u128 = u128::from(((__v_1878.as_canonical_u64() << 0) | (__v_1879.as_canonical_u64() << 8) | (__v_1880.as_canonical_u64() << 16) | (__v_1881.as_canonical_u64() << 24))) + u128::from(((__v_2250.as_canonical_u64() << 0) | (__v_2251.as_canonical_u64() << 8) | (__v_2248.as_canonical_u64() << 16) | (__v_2249.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2252: G = G::from_u8(__u32_bytes[0]); + let __v_2253: G = G::from_u8(__u32_bytes[1]); + let __v_2254: G = G::from_u8(__u32_bytes[2]); + let __v_2255: G = G::from_u8(__u32_bytes[3]); + let __v_2256: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2252; let __vj = __v_2253; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2254; let __vj = __v_2255; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2257: G = (__v_2256 * __v_2256); + if (__v_2257 != __v_2256) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2257.as_canonical_u64(), rhs: __v_2256.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1824, &__v_2252) } else { bytes2_xor_split4_value(__v_1824, __v_2252, record) }; + let __v_2258: G = __b2_out.0; + let __v_2259: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1825, &__v_2253) } else { bytes2_xor_split4_value(__v_1825, __v_2253, record) }; + let __v_2260: G = __b2_out.0; + let __v_2261: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1826, &__v_2254) } else { bytes2_xor_split4_value(__v_1826, __v_2254, record) }; + let __v_2262: G = __b2_out.0; + let __v_2263: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_1827, &__v_2255) } else { bytes2_xor_split4_value(__v_1827, __v_2255, record) }; + let __v_2264: G = __b2_out.0; + let __v_2265: G = __b2_out.1; + let __v_2266: G = (__v_2260 + __v_2263); + let __v_2267: G = (__v_2262 + __v_2265); + let __v_2268: G = (__v_2264 + __v_2259); + let __v_2269: G = (__v_2258 + __v_2261); + let __u32_sum: u128 = u128::from(((__v_2236.as_canonical_u64() << 0) | (__v_2237.as_canonical_u64() << 8) | (__v_2238.as_canonical_u64() << 16) | (__v_2239.as_canonical_u64() << 24))) + u128::from(((__v_2266.as_canonical_u64() << 0) | (__v_2267.as_canonical_u64() << 8) | (__v_2268.as_canonical_u64() << 16) | (__v_2269.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2270: G = G::from_u8(__u32_bytes[0]); + let __v_2271: G = G::from_u8(__u32_bytes[1]); + let __v_2272: G = G::from_u8(__u32_bytes[2]); + let __v_2273: G = G::from_u8(__u32_bytes[3]); + let __v_2274: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2270; let __vj = __v_2271; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2272; let __vj = __v_2273; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2275: G = G::from_u64(1); + let __v_2276: G = (__v_2274 - __v_2275); + let __v_2277: G = G::from_u64(2); + let __v_2278: G = (__v_2274 - __v_2277); + let __v_2279: G = (__v_2276 * __v_2278); + let __v_2280: G = (__v_2274 * __v_2279); + let __v_2281: G = G::from_u64(0); + if (__v_2280 != __v_2281) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2280.as_canonical_u64(), rhs: __v_2281.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2282: G = if unconstrained { Bytes2::xor(&__v_2250, &__v_2270) } else { bytes2_xor_value(__v_2250, __v_2270, record) }; + let __v_2283: G = if unconstrained { Bytes2::xor(&__v_2251, &__v_2271) } else { bytes2_xor_value(__v_2251, __v_2271, record) }; + let __v_2284: G = if unconstrained { Bytes2::xor(&__v_2248, &__v_2272) } else { bytes2_xor_value(__v_2248, __v_2272, record) }; + let __v_2285: G = if unconstrained { Bytes2::xor(&__v_2249, &__v_2273) } else { bytes2_xor_value(__v_2249, __v_2273, record) }; + let __u32_sum: u128 = u128::from(((__v_2252.as_canonical_u64() << 0) | (__v_2253.as_canonical_u64() << 8) | (__v_2254.as_canonical_u64() << 16) | (__v_2255.as_canonical_u64() << 24))) + u128::from(((__v_2283.as_canonical_u64() << 0) | (__v_2284.as_canonical_u64() << 8) | (__v_2285.as_canonical_u64() << 16) | (__v_2282.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2286: G = G::from_u8(__u32_bytes[0]); + let __v_2287: G = G::from_u8(__u32_bytes[1]); + let __v_2288: G = G::from_u8(__u32_bytes[2]); + let __v_2289: G = G::from_u8(__u32_bytes[3]); + let __v_2290: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2286; let __vj = __v_2287; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2288; let __vj = __v_2289; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2291: G = (__v_2290 * __v_2290); + if (__v_2291 != __v_2290) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2291.as_canonical_u64(), rhs: __v_2290.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2266, &__v_2286) } else { bytes2_xor_split7_value(__v_2266, __v_2286, record) }; + let __v_2292: G = __b2_out.0; + let __v_2293: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2267, &__v_2287) } else { bytes2_xor_split7_value(__v_2267, __v_2287, record) }; + let __v_2294: G = __b2_out.0; + let __v_2295: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2268, &__v_2288) } else { bytes2_xor_split7_value(__v_2268, __v_2288, record) }; + let __v_2296: G = __b2_out.0; + let __v_2297: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2269, &__v_2289) } else { bytes2_xor_split7_value(__v_2269, __v_2289, record) }; + let __v_2298: G = __b2_out.0; + let __v_2299: G = __b2_out.1; + let __v_2300: G = (__v_2292 + __v_2295); + let __v_2301: G = (__v_2294 + __v_2297); + let __v_2302: G = (__v_2296 + __v_2299); + let __v_2303: G = (__v_2298 + __v_2293); + let __u32_sum: u128 = u128::from(((__v_2066.as_canonical_u64() << 0) | (__v_2067.as_canonical_u64() << 8) | (__v_2068.as_canonical_u64() << 16) | (__v_2069.as_canonical_u64() << 24))) + u128::from(((__v_2300.as_canonical_u64() << 0) | (__v_2301.as_canonical_u64() << 8) | (__v_2302.as_canonical_u64() << 16) | (__v_2303.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2304: G = G::from_u8(__u32_bytes[0]); + let __v_2305: G = G::from_u8(__u32_bytes[1]); + let __v_2306: G = G::from_u8(__u32_bytes[2]); + let __v_2307: G = G::from_u8(__u32_bytes[3]); + let __v_2308: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2304; let __vj = __v_2305; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2306; let __vj = __v_2307; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2309: G = G::from_u64(1); + let __v_2310: G = (__v_2308 - __v_2309); + let __v_2311: G = G::from_u64(2); + let __v_2312: G = (__v_2308 - __v_2311); + let __v_2313: G = (__v_2310 * __v_2312); + let __v_2314: G = (__v_2308 * __v_2313); + let __v_2315: G = G::from_u64(0); + if (__v_2314 != __v_2315) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2314.as_canonical_u64(), rhs: __v_2315.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2316: G = if unconstrained { Bytes2::xor(&__v_2147, &__v_2304) } else { bytes2_xor_value(__v_2147, __v_2304, record) }; + let __v_2317: G = if unconstrained { Bytes2::xor(&__v_2148, &__v_2305) } else { bytes2_xor_value(__v_2148, __v_2305, record) }; + let __v_2318: G = if unconstrained { Bytes2::xor(&__v_2149, &__v_2306) } else { bytes2_xor_value(__v_2149, __v_2306, record) }; + let __v_2319: G = if unconstrained { Bytes2::xor(&__v_2146, &__v_2307) } else { bytes2_xor_value(__v_2146, __v_2307, record) }; + let __u32_sum: u128 = u128::from(((__v_2218.as_canonical_u64() << 0) | (__v_2219.as_canonical_u64() << 8) | (__v_2220.as_canonical_u64() << 16) | (__v_2221.as_canonical_u64() << 24))) + u128::from(((__v_2318.as_canonical_u64() << 0) | (__v_2319.as_canonical_u64() << 8) | (__v_2316.as_canonical_u64() << 16) | (__v_2317.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2320: G = G::from_u8(__u32_bytes[0]); + let __v_2321: G = G::from_u8(__u32_bytes[1]); + let __v_2322: G = G::from_u8(__u32_bytes[2]); + let __v_2323: G = G::from_u8(__u32_bytes[3]); + let __v_2324: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2320; let __vj = __v_2321; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2322; let __vj = __v_2323; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2325: G = (__v_2324 * __v_2324); + if (__v_2325 != __v_2324) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2325.as_canonical_u64(), rhs: __v_2324.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2300, &__v_2320) } else { bytes2_xor_split4_value(__v_2300, __v_2320, record) }; + let __v_2326: G = __b2_out.0; + let __v_2327: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2301, &__v_2321) } else { bytes2_xor_split4_value(__v_2301, __v_2321, record) }; + let __v_2328: G = __b2_out.0; + let __v_2329: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2302, &__v_2322) } else { bytes2_xor_split4_value(__v_2302, __v_2322, record) }; + let __v_2330: G = __b2_out.0; + let __v_2331: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2303, &__v_2323) } else { bytes2_xor_split4_value(__v_2303, __v_2323, record) }; + let __v_2332: G = __b2_out.0; + let __v_2333: G = __b2_out.1; + let __v_2334: G = (__v_2328 + __v_2331); + let __v_2335: G = (__v_2330 + __v_2333); + let __v_2336: G = (__v_2332 + __v_2327); + let __v_2337: G = (__v_2326 + __v_2329); + let __u32_sum: u128 = u128::from(((__v_2304.as_canonical_u64() << 0) | (__v_2305.as_canonical_u64() << 8) | (__v_2306.as_canonical_u64() << 16) | (__v_2307.as_canonical_u64() << 24))) + u128::from(((__v_2334.as_canonical_u64() << 0) | (__v_2335.as_canonical_u64() << 8) | (__v_2336.as_canonical_u64() << 16) | (__v_2337.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2338: G = G::from_u8(__u32_bytes[0]); + let __v_2339: G = G::from_u8(__u32_bytes[1]); + let __v_2340: G = G::from_u8(__u32_bytes[2]); + let __v_2341: G = G::from_u8(__u32_bytes[3]); + let __v_2342: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2338; let __vj = __v_2339; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2340; let __vj = __v_2341; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2343: G = G::from_u64(1); + let __v_2344: G = (__v_2342 - __v_2343); + let __v_2345: G = G::from_u64(2); + let __v_2346: G = (__v_2342 - __v_2345); + let __v_2347: G = (__v_2344 * __v_2346); + let __v_2348: G = (__v_2342 * __v_2347); + let __v_2349: G = G::from_u64(0); + if (__v_2348 != __v_2349) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2348.as_canonical_u64(), rhs: __v_2349.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2350: G = if unconstrained { Bytes2::xor(&__v_2318, &__v_2338) } else { bytes2_xor_value(__v_2318, __v_2338, record) }; + let __v_2351: G = if unconstrained { Bytes2::xor(&__v_2319, &__v_2339) } else { bytes2_xor_value(__v_2319, __v_2339, record) }; + let __v_2352: G = if unconstrained { Bytes2::xor(&__v_2316, &__v_2340) } else { bytes2_xor_value(__v_2316, __v_2340, record) }; + let __v_2353: G = if unconstrained { Bytes2::xor(&__v_2317, &__v_2341) } else { bytes2_xor_value(__v_2317, __v_2341, record) }; + let __u32_sum: u128 = u128::from(((__v_2320.as_canonical_u64() << 0) | (__v_2321.as_canonical_u64() << 8) | (__v_2322.as_canonical_u64() << 16) | (__v_2323.as_canonical_u64() << 24))) + u128::from(((__v_2351.as_canonical_u64() << 0) | (__v_2352.as_canonical_u64() << 8) | (__v_2353.as_canonical_u64() << 16) | (__v_2350.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2354: G = G::from_u8(__u32_bytes[0]); + let __v_2355: G = G::from_u8(__u32_bytes[1]); + let __v_2356: G = G::from_u8(__u32_bytes[2]); + let __v_2357: G = G::from_u8(__u32_bytes[3]); + let __v_2358: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2354; let __vj = __v_2355; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2356; let __vj = __v_2357; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2359: G = (__v_2358 * __v_2358); + if (__v_2359 != __v_2358) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2359.as_canonical_u64(), rhs: __v_2358.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2334, &__v_2354) } else { bytes2_xor_split7_value(__v_2334, __v_2354, record) }; + let __v_2360: G = __b2_out.0; + let __v_2361: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2335, &__v_2355) } else { bytes2_xor_split7_value(__v_2335, __v_2355, record) }; + let __v_2362: G = __b2_out.0; + let __v_2363: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2336, &__v_2356) } else { bytes2_xor_split7_value(__v_2336, __v_2356, record) }; + let __v_2364: G = __b2_out.0; + let __v_2365: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2337, &__v_2357) } else { bytes2_xor_split7_value(__v_2337, __v_2357, record) }; + let __v_2366: G = __b2_out.0; + let __v_2367: G = __b2_out.1; + let __v_2368: G = (__v_2360 + __v_2363); + let __v_2369: G = (__v_2362 + __v_2365); + let __v_2370: G = (__v_2364 + __v_2367); + let __v_2371: G = (__v_2366 + __v_2361); + let __u32_sum: u128 = u128::from(((__v_2134.as_canonical_u64() << 0) | (__v_2135.as_canonical_u64() << 8) | (__v_2136.as_canonical_u64() << 16) | (__v_2137.as_canonical_u64() << 24))) + u128::from(((__v_2096.as_canonical_u64() << 0) | (__v_2097.as_canonical_u64() << 8) | (__v_2098.as_canonical_u64() << 16) | (__v_2099.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2372: G = G::from_u8(__u32_bytes[0]); + let __v_2373: G = G::from_u8(__u32_bytes[1]); + let __v_2374: G = G::from_u8(__u32_bytes[2]); + let __v_2375: G = G::from_u8(__u32_bytes[3]); + let __v_2376: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2372; let __vj = __v_2373; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2374; let __vj = __v_2375; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2377: G = G::from_u64(1); + let __v_2378: G = (__v_2376 - __v_2377); + let __v_2379: G = G::from_u64(2); + let __v_2380: G = (__v_2376 - __v_2379); + let __v_2381: G = (__v_2378 * __v_2380); + let __v_2382: G = (__v_2376 * __v_2381); + let __v_2383: G = G::from_u64(0); + if (__v_2382 != __v_2383) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2382.as_canonical_u64(), rhs: __v_2383.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2384: G = if unconstrained { Bytes2::xor(&__v_2215, &__v_2372) } else { bytes2_xor_value(__v_2215, __v_2372, record) }; + let __v_2385: G = if unconstrained { Bytes2::xor(&__v_2216, &__v_2373) } else { bytes2_xor_value(__v_2216, __v_2373, record) }; + let __v_2386: G = if unconstrained { Bytes2::xor(&__v_2217, &__v_2374) } else { bytes2_xor_value(__v_2217, __v_2374, record) }; + let __v_2387: G = if unconstrained { Bytes2::xor(&__v_2214, &__v_2375) } else { bytes2_xor_value(__v_2214, __v_2375, record) }; + let __u32_sum: u128 = u128::from(((__v_2286.as_canonical_u64() << 0) | (__v_2287.as_canonical_u64() << 8) | (__v_2288.as_canonical_u64() << 16) | (__v_2289.as_canonical_u64() << 24))) + u128::from(((__v_2386.as_canonical_u64() << 0) | (__v_2387.as_canonical_u64() << 8) | (__v_2384.as_canonical_u64() << 16) | (__v_2385.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2388: G = G::from_u8(__u32_bytes[0]); + let __v_2389: G = G::from_u8(__u32_bytes[1]); + let __v_2390: G = G::from_u8(__u32_bytes[2]); + let __v_2391: G = G::from_u8(__u32_bytes[3]); + let __v_2392: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2388; let __vj = __v_2389; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2390; let __vj = __v_2391; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2393: G = (__v_2392 * __v_2392); + if (__v_2393 != __v_2392) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2393.as_canonical_u64(), rhs: __v_2392.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2096, &__v_2388) } else { bytes2_xor_split4_value(__v_2096, __v_2388, record) }; + let __v_2394: G = __b2_out.0; + let __v_2395: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2097, &__v_2389) } else { bytes2_xor_split4_value(__v_2097, __v_2389, record) }; + let __v_2396: G = __b2_out.0; + let __v_2397: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2098, &__v_2390) } else { bytes2_xor_split4_value(__v_2098, __v_2390, record) }; + let __v_2398: G = __b2_out.0; + let __v_2399: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2099, &__v_2391) } else { bytes2_xor_split4_value(__v_2099, __v_2391, record) }; + let __v_2400: G = __b2_out.0; + let __v_2401: G = __b2_out.1; + let __v_2402: G = (__v_2396 + __v_2399); + let __v_2403: G = (__v_2398 + __v_2401); + let __v_2404: G = (__v_2400 + __v_2395); + let __v_2405: G = (__v_2394 + __v_2397); + let __u32_sum: u128 = u128::from(((__v_2372.as_canonical_u64() << 0) | (__v_2373.as_canonical_u64() << 8) | (__v_2374.as_canonical_u64() << 16) | (__v_2375.as_canonical_u64() << 24))) + u128::from(((__v_2402.as_canonical_u64() << 0) | (__v_2403.as_canonical_u64() << 8) | (__v_2404.as_canonical_u64() << 16) | (__v_2405.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2406: G = G::from_u8(__u32_bytes[0]); + let __v_2407: G = G::from_u8(__u32_bytes[1]); + let __v_2408: G = G::from_u8(__u32_bytes[2]); + let __v_2409: G = G::from_u8(__u32_bytes[3]); + let __v_2410: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2406; let __vj = __v_2407; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2408; let __vj = __v_2409; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2411: G = G::from_u64(1); + let __v_2412: G = (__v_2410 - __v_2411); + let __v_2413: G = G::from_u64(2); + let __v_2414: G = (__v_2410 - __v_2413); + let __v_2415: G = (__v_2412 * __v_2414); + let __v_2416: G = (__v_2410 * __v_2415); + let __v_2417: G = G::from_u64(0); + if (__v_2416 != __v_2417) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2416.as_canonical_u64(), rhs: __v_2417.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2418: G = if unconstrained { Bytes2::xor(&__v_2386, &__v_2406) } else { bytes2_xor_value(__v_2386, __v_2406, record) }; + let __v_2419: G = if unconstrained { Bytes2::xor(&__v_2387, &__v_2407) } else { bytes2_xor_value(__v_2387, __v_2407, record) }; + let __v_2420: G = if unconstrained { Bytes2::xor(&__v_2384, &__v_2408) } else { bytes2_xor_value(__v_2384, __v_2408, record) }; + let __v_2421: G = if unconstrained { Bytes2::xor(&__v_2385, &__v_2409) } else { bytes2_xor_value(__v_2385, __v_2409, record) }; + let __u32_sum: u128 = u128::from(((__v_2388.as_canonical_u64() << 0) | (__v_2389.as_canonical_u64() << 8) | (__v_2390.as_canonical_u64() << 16) | (__v_2391.as_canonical_u64() << 24))) + u128::from(((__v_2419.as_canonical_u64() << 0) | (__v_2420.as_canonical_u64() << 8) | (__v_2421.as_canonical_u64() << 16) | (__v_2418.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2422: G = G::from_u8(__u32_bytes[0]); + let __v_2423: G = G::from_u8(__u32_bytes[1]); + let __v_2424: G = G::from_u8(__u32_bytes[2]); + let __v_2425: G = G::from_u8(__u32_bytes[3]); + let __v_2426: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2422; let __vj = __v_2423; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2424; let __vj = __v_2425; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2427: G = (__v_2426 * __v_2426); + if (__v_2427 != __v_2426) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2427.as_canonical_u64(), rhs: __v_2426.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2402, &__v_2422) } else { bytes2_xor_split7_value(__v_2402, __v_2422, record) }; + let __v_2428: G = __b2_out.0; + let __v_2429: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2403, &__v_2423) } else { bytes2_xor_split7_value(__v_2403, __v_2423, record) }; + let __v_2430: G = __b2_out.0; + let __v_2431: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2404, &__v_2424) } else { bytes2_xor_split7_value(__v_2404, __v_2424, record) }; + let __v_2432: G = __b2_out.0; + let __v_2433: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2405, &__v_2425) } else { bytes2_xor_split7_value(__v_2405, __v_2425, record) }; + let __v_2434: G = __b2_out.0; + let __v_2435: G = __b2_out.1; + let __v_2436: G = (__v_2428 + __v_2431); + let __v_2437: G = (__v_2430 + __v_2433); + let __v_2438: G = (__v_2432 + __v_2435); + let __v_2439: G = (__v_2434 + __v_2429); + let __u32_sum: u128 = u128::from(((__v_2202.as_canonical_u64() << 0) | (__v_2203.as_canonical_u64() << 8) | (__v_2204.as_canonical_u64() << 16) | (__v_2205.as_canonical_u64() << 24))) + u128::from(((__v_2164.as_canonical_u64() << 0) | (__v_2165.as_canonical_u64() << 8) | (__v_2166.as_canonical_u64() << 16) | (__v_2167.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2440: G = G::from_u8(__u32_bytes[0]); + let __v_2441: G = G::from_u8(__u32_bytes[1]); + let __v_2442: G = G::from_u8(__u32_bytes[2]); + let __v_2443: G = G::from_u8(__u32_bytes[3]); + let __v_2444: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2440; let __vj = __v_2441; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2442; let __vj = __v_2443; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2445: G = G::from_u64(1); + let __v_2446: G = (__v_2444 - __v_2445); + let __v_2447: G = G::from_u64(2); + let __v_2448: G = (__v_2444 - __v_2447); + let __v_2449: G = (__v_2446 * __v_2448); + let __v_2450: G = (__v_2444 * __v_2449); + let __v_2451: G = G::from_u64(0); + if (__v_2450 != __v_2451) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2450.as_canonical_u64(), rhs: __v_2451.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2452: G = if unconstrained { Bytes2::xor(&__v_2283, &__v_2440) } else { bytes2_xor_value(__v_2283, __v_2440, record) }; + let __v_2453: G = if unconstrained { Bytes2::xor(&__v_2284, &__v_2441) } else { bytes2_xor_value(__v_2284, __v_2441, record) }; + let __v_2454: G = if unconstrained { Bytes2::xor(&__v_2285, &__v_2442) } else { bytes2_xor_value(__v_2285, __v_2442, record) }; + let __v_2455: G = if unconstrained { Bytes2::xor(&__v_2282, &__v_2443) } else { bytes2_xor_value(__v_2282, __v_2443, record) }; + let __u32_sum: u128 = u128::from(((__v_2082.as_canonical_u64() << 0) | (__v_2083.as_canonical_u64() << 8) | (__v_2084.as_canonical_u64() << 16) | (__v_2085.as_canonical_u64() << 24))) + u128::from(((__v_2454.as_canonical_u64() << 0) | (__v_2455.as_canonical_u64() << 8) | (__v_2452.as_canonical_u64() << 16) | (__v_2453.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2456: G = G::from_u8(__u32_bytes[0]); + let __v_2457: G = G::from_u8(__u32_bytes[1]); + let __v_2458: G = G::from_u8(__u32_bytes[2]); + let __v_2459: G = G::from_u8(__u32_bytes[3]); + let __v_2460: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2456; let __vj = __v_2457; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2458; let __vj = __v_2459; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2461: G = (__v_2460 * __v_2460); + if (__v_2461 != __v_2460) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2461.as_canonical_u64(), rhs: __v_2460.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2164, &__v_2456) } else { bytes2_xor_split4_value(__v_2164, __v_2456, record) }; + let __v_2462: G = __b2_out.0; + let __v_2463: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2165, &__v_2457) } else { bytes2_xor_split4_value(__v_2165, __v_2457, record) }; + let __v_2464: G = __b2_out.0; + let __v_2465: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2166, &__v_2458) } else { bytes2_xor_split4_value(__v_2166, __v_2458, record) }; + let __v_2466: G = __b2_out.0; + let __v_2467: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2167, &__v_2459) } else { bytes2_xor_split4_value(__v_2167, __v_2459, record) }; + let __v_2468: G = __b2_out.0; + let __v_2469: G = __b2_out.1; + let __v_2470: G = (__v_2464 + __v_2467); + let __v_2471: G = (__v_2466 + __v_2469); + let __v_2472: G = (__v_2468 + __v_2463); + let __v_2473: G = (__v_2462 + __v_2465); + let __u32_sum: u128 = u128::from(((__v_2440.as_canonical_u64() << 0) | (__v_2441.as_canonical_u64() << 8) | (__v_2442.as_canonical_u64() << 16) | (__v_2443.as_canonical_u64() << 24))) + u128::from(((__v_2470.as_canonical_u64() << 0) | (__v_2471.as_canonical_u64() << 8) | (__v_2472.as_canonical_u64() << 16) | (__v_2473.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2474: G = G::from_u8(__u32_bytes[0]); + let __v_2475: G = G::from_u8(__u32_bytes[1]); + let __v_2476: G = G::from_u8(__u32_bytes[2]); + let __v_2477: G = G::from_u8(__u32_bytes[3]); + let __v_2478: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2474; let __vj = __v_2475; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2476; let __vj = __v_2477; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2479: G = G::from_u64(1); + let __v_2480: G = (__v_2478 - __v_2479); + let __v_2481: G = G::from_u64(2); + let __v_2482: G = (__v_2478 - __v_2481); + let __v_2483: G = (__v_2480 * __v_2482); + let __v_2484: G = (__v_2478 * __v_2483); + let __v_2485: G = G::from_u64(0); + if (__v_2484 != __v_2485) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2484.as_canonical_u64(), rhs: __v_2485.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2486: G = if unconstrained { Bytes2::xor(&__v_2454, &__v_2474) } else { bytes2_xor_value(__v_2454, __v_2474, record) }; + let __v_2487: G = if unconstrained { Bytes2::xor(&__v_2455, &__v_2475) } else { bytes2_xor_value(__v_2455, __v_2475, record) }; + let __v_2488: G = if unconstrained { Bytes2::xor(&__v_2452, &__v_2476) } else { bytes2_xor_value(__v_2452, __v_2476, record) }; + let __v_2489: G = if unconstrained { Bytes2::xor(&__v_2453, &__v_2477) } else { bytes2_xor_value(__v_2453, __v_2477, record) }; + let __u32_sum: u128 = u128::from(((__v_2456.as_canonical_u64() << 0) | (__v_2457.as_canonical_u64() << 8) | (__v_2458.as_canonical_u64() << 16) | (__v_2459.as_canonical_u64() << 24))) + u128::from(((__v_2487.as_canonical_u64() << 0) | (__v_2488.as_canonical_u64() << 8) | (__v_2489.as_canonical_u64() << 16) | (__v_2486.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2490: G = G::from_u8(__u32_bytes[0]); + let __v_2491: G = G::from_u8(__u32_bytes[1]); + let __v_2492: G = G::from_u8(__u32_bytes[2]); + let __v_2493: G = G::from_u8(__u32_bytes[3]); + let __v_2494: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2490; let __vj = __v_2491; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2492; let __vj = __v_2493; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2495: G = (__v_2494 * __v_2494); + if (__v_2495 != __v_2494) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2495.as_canonical_u64(), rhs: __v_2494.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2470, &__v_2490) } else { bytes2_xor_split7_value(__v_2470, __v_2490, record) }; + let __v_2496: G = __b2_out.0; + let __v_2497: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2471, &__v_2491) } else { bytes2_xor_split7_value(__v_2471, __v_2491, record) }; + let __v_2498: G = __b2_out.0; + let __v_2499: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2472, &__v_2492) } else { bytes2_xor_split7_value(__v_2472, __v_2492, record) }; + let __v_2500: G = __b2_out.0; + let __v_2501: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2473, &__v_2493) } else { bytes2_xor_split7_value(__v_2473, __v_2493, record) }; + let __v_2502: G = __b2_out.0; + let __v_2503: G = __b2_out.1; + let __v_2504: G = (__v_2496 + __v_2499); + let __v_2505: G = (__v_2498 + __v_2501); + let __v_2506: G = (__v_2500 + __v_2503); + let __v_2507: G = (__v_2502 + __v_2497); + let __u32_sum: u128 = u128::from(((__v_2270.as_canonical_u64() << 0) | (__v_2271.as_canonical_u64() << 8) | (__v_2272.as_canonical_u64() << 16) | (__v_2273.as_canonical_u64() << 24))) + u128::from(((__v_2232.as_canonical_u64() << 0) | (__v_2233.as_canonical_u64() << 8) | (__v_2234.as_canonical_u64() << 16) | (__v_2235.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2508: G = G::from_u8(__u32_bytes[0]); + let __v_2509: G = G::from_u8(__u32_bytes[1]); + let __v_2510: G = G::from_u8(__u32_bytes[2]); + let __v_2511: G = G::from_u8(__u32_bytes[3]); + let __v_2512: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2508; let __vj = __v_2509; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2510; let __vj = __v_2511; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2513: G = G::from_u64(1); + let __v_2514: G = (__v_2512 - __v_2513); + let __v_2515: G = G::from_u64(2); + let __v_2516: G = (__v_2512 - __v_2515); + let __v_2517: G = (__v_2514 * __v_2516); + let __v_2518: G = (__v_2512 * __v_2517); + let __v_2519: G = G::from_u64(0); + if (__v_2518 != __v_2519) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2518.as_canonical_u64(), rhs: __v_2519.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2520: G = if unconstrained { Bytes2::xor(&__v_2079, &__v_2508) } else { bytes2_xor_value(__v_2079, __v_2508, record) }; + let __v_2521: G = if unconstrained { Bytes2::xor(&__v_2080, &__v_2509) } else { bytes2_xor_value(__v_2080, __v_2509, record) }; + let __v_2522: G = if unconstrained { Bytes2::xor(&__v_2081, &__v_2510) } else { bytes2_xor_value(__v_2081, __v_2510, record) }; + let __v_2523: G = if unconstrained { Bytes2::xor(&__v_2078, &__v_2511) } else { bytes2_xor_value(__v_2078, __v_2511, record) }; + let __u32_sum: u128 = u128::from(((__v_2150.as_canonical_u64() << 0) | (__v_2151.as_canonical_u64() << 8) | (__v_2152.as_canonical_u64() << 16) | (__v_2153.as_canonical_u64() << 24))) + u128::from(((__v_2522.as_canonical_u64() << 0) | (__v_2523.as_canonical_u64() << 8) | (__v_2520.as_canonical_u64() << 16) | (__v_2521.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2524: G = G::from_u8(__u32_bytes[0]); + let __v_2525: G = G::from_u8(__u32_bytes[1]); + let __v_2526: G = G::from_u8(__u32_bytes[2]); + let __v_2527: G = G::from_u8(__u32_bytes[3]); + let __v_2528: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2524; let __vj = __v_2525; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2526; let __vj = __v_2527; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2529: G = (__v_2528 * __v_2528); + if (__v_2529 != __v_2528) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2529.as_canonical_u64(), rhs: __v_2528.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2232, &__v_2524) } else { bytes2_xor_split4_value(__v_2232, __v_2524, record) }; + let __v_2530: G = __b2_out.0; + let __v_2531: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2233, &__v_2525) } else { bytes2_xor_split4_value(__v_2233, __v_2525, record) }; + let __v_2532: G = __b2_out.0; + let __v_2533: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2234, &__v_2526) } else { bytes2_xor_split4_value(__v_2234, __v_2526, record) }; + let __v_2534: G = __b2_out.0; + let __v_2535: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2235, &__v_2527) } else { bytes2_xor_split4_value(__v_2235, __v_2527, record) }; + let __v_2536: G = __b2_out.0; + let __v_2537: G = __b2_out.1; + let __v_2538: G = (__v_2532 + __v_2535); + let __v_2539: G = (__v_2534 + __v_2537); + let __v_2540: G = (__v_2536 + __v_2531); + let __v_2541: G = (__v_2530 + __v_2533); + let __u32_sum: u128 = u128::from(((__v_2508.as_canonical_u64() << 0) | (__v_2509.as_canonical_u64() << 8) | (__v_2510.as_canonical_u64() << 16) | (__v_2511.as_canonical_u64() << 24))) + u128::from(((__v_2538.as_canonical_u64() << 0) | (__v_2539.as_canonical_u64() << 8) | (__v_2540.as_canonical_u64() << 16) | (__v_2541.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2542: G = G::from_u8(__u32_bytes[0]); + let __v_2543: G = G::from_u8(__u32_bytes[1]); + let __v_2544: G = G::from_u8(__u32_bytes[2]); + let __v_2545: G = G::from_u8(__u32_bytes[3]); + let __v_2546: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2542; let __vj = __v_2543; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2544; let __vj = __v_2545; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2547: G = G::from_u64(1); + let __v_2548: G = (__v_2546 - __v_2547); + let __v_2549: G = G::from_u64(2); + let __v_2550: G = (__v_2546 - __v_2549); + let __v_2551: G = (__v_2548 * __v_2550); + let __v_2552: G = (__v_2546 * __v_2551); + let __v_2553: G = G::from_u64(0); + if (__v_2552 != __v_2553) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2552.as_canonical_u64(), rhs: __v_2553.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2554: G = if unconstrained { Bytes2::xor(&__v_2522, &__v_2542) } else { bytes2_xor_value(__v_2522, __v_2542, record) }; + let __v_2555: G = if unconstrained { Bytes2::xor(&__v_2523, &__v_2543) } else { bytes2_xor_value(__v_2523, __v_2543, record) }; + let __v_2556: G = if unconstrained { Bytes2::xor(&__v_2520, &__v_2544) } else { bytes2_xor_value(__v_2520, __v_2544, record) }; + let __v_2557: G = if unconstrained { Bytes2::xor(&__v_2521, &__v_2545) } else { bytes2_xor_value(__v_2521, __v_2545, record) }; + let __u32_sum: u128 = u128::from(((__v_2524.as_canonical_u64() << 0) | (__v_2525.as_canonical_u64() << 8) | (__v_2526.as_canonical_u64() << 16) | (__v_2527.as_canonical_u64() << 24))) + u128::from(((__v_2555.as_canonical_u64() << 0) | (__v_2556.as_canonical_u64() << 8) | (__v_2557.as_canonical_u64() << 16) | (__v_2554.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2558: G = G::from_u8(__u32_bytes[0]); + let __v_2559: G = G::from_u8(__u32_bytes[1]); + let __v_2560: G = G::from_u8(__u32_bytes[2]); + let __v_2561: G = G::from_u8(__u32_bytes[3]); + let __v_2562: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2558; let __vj = __v_2559; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2560; let __vj = __v_2561; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2563: G = (__v_2562 * __v_2562); + if (__v_2563 != __v_2562) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2563.as_canonical_u64(), rhs: __v_2562.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2538, &__v_2558) } else { bytes2_xor_split7_value(__v_2538, __v_2558, record) }; + let __v_2564: G = __b2_out.0; + let __v_2565: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2539, &__v_2559) } else { bytes2_xor_split7_value(__v_2539, __v_2559, record) }; + let __v_2566: G = __b2_out.0; + let __v_2567: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2540, &__v_2560) } else { bytes2_xor_split7_value(__v_2540, __v_2560, record) }; + let __v_2568: G = __b2_out.0; + let __v_2569: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2541, &__v_2561) } else { bytes2_xor_split7_value(__v_2541, __v_2561, record) }; + let __v_2570: G = __b2_out.0; + let __v_2571: G = __b2_out.1; + let __v_2572: G = (__v_2564 + __v_2567); + let __v_2573: G = (__v_2566 + __v_2569); + let __v_2574: G = (__v_2568 + __v_2571); + let __v_2575: G = (__v_2570 + __v_2565); + let __u32_sum: u128 = u128::from(((__v_2338.as_canonical_u64() << 0) | (__v_2339.as_canonical_u64() << 8) | (__v_2340.as_canonical_u64() << 16) | (__v_2341.as_canonical_u64() << 24))) + u128::from(((__v_2436.as_canonical_u64() << 0) | (__v_2437.as_canonical_u64() << 8) | (__v_2438.as_canonical_u64() << 16) | (__v_2439.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2576: G = G::from_u8(__u32_bytes[0]); + let __v_2577: G = G::from_u8(__u32_bytes[1]); + let __v_2578: G = G::from_u8(__u32_bytes[2]); + let __v_2579: G = G::from_u8(__u32_bytes[3]); + let __v_2580: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2576; let __vj = __v_2577; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2578; let __vj = __v_2579; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2581: G = G::from_u64(1); + let __v_2582: G = (__v_2580 - __v_2581); + let __v_2583: G = G::from_u64(2); + let __v_2584: G = (__v_2580 - __v_2583); + let __v_2585: G = (__v_2582 * __v_2584); + let __v_2586: G = (__v_2580 * __v_2585); + let __v_2587: G = G::from_u64(0); + if (__v_2586 != __v_2587) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2586.as_canonical_u64(), rhs: __v_2587.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2588: G = if unconstrained { Bytes2::xor(&__v_2555, &__v_2576) } else { bytes2_xor_value(__v_2555, __v_2576, record) }; + let __v_2589: G = if unconstrained { Bytes2::xor(&__v_2556, &__v_2577) } else { bytes2_xor_value(__v_2556, __v_2577, record) }; + let __v_2590: G = if unconstrained { Bytes2::xor(&__v_2557, &__v_2578) } else { bytes2_xor_value(__v_2557, __v_2578, record) }; + let __v_2591: G = if unconstrained { Bytes2::xor(&__v_2554, &__v_2579) } else { bytes2_xor_value(__v_2554, __v_2579, record) }; + let __u32_sum: u128 = u128::from(((__v_2490.as_canonical_u64() << 0) | (__v_2491.as_canonical_u64() << 8) | (__v_2492.as_canonical_u64() << 16) | (__v_2493.as_canonical_u64() << 24))) + u128::from(((__v_2590.as_canonical_u64() << 0) | (__v_2591.as_canonical_u64() << 8) | (__v_2588.as_canonical_u64() << 16) | (__v_2589.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2592: G = G::from_u8(__u32_bytes[0]); + let __v_2593: G = G::from_u8(__u32_bytes[1]); + let __v_2594: G = G::from_u8(__u32_bytes[2]); + let __v_2595: G = G::from_u8(__u32_bytes[3]); + let __v_2596: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2592; let __vj = __v_2593; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2594; let __vj = __v_2595; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2597: G = (__v_2596 * __v_2596); + if (__v_2597 != __v_2596) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2597.as_canonical_u64(), rhs: __v_2596.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2436, &__v_2592) } else { bytes2_xor_split4_value(__v_2436, __v_2592, record) }; + let __v_2598: G = __b2_out.0; + let __v_2599: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2437, &__v_2593) } else { bytes2_xor_split4_value(__v_2437, __v_2593, record) }; + let __v_2600: G = __b2_out.0; + let __v_2601: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2438, &__v_2594) } else { bytes2_xor_split4_value(__v_2438, __v_2594, record) }; + let __v_2602: G = __b2_out.0; + let __v_2603: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2439, &__v_2595) } else { bytes2_xor_split4_value(__v_2439, __v_2595, record) }; + let __v_2604: G = __b2_out.0; + let __v_2605: G = __b2_out.1; + let __v_2606: G = (__v_2600 + __v_2603); + let __v_2607: G = (__v_2602 + __v_2605); + let __v_2608: G = (__v_2604 + __v_2599); + let __v_2609: G = (__v_2598 + __v_2601); + let __u32_sum: u128 = u128::from(((__v_2576.as_canonical_u64() << 0) | (__v_2577.as_canonical_u64() << 8) | (__v_2578.as_canonical_u64() << 16) | (__v_2579.as_canonical_u64() << 24))) + u128::from(((__v_2606.as_canonical_u64() << 0) | (__v_2607.as_canonical_u64() << 8) | (__v_2608.as_canonical_u64() << 16) | (__v_2609.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2610: G = G::from_u8(__u32_bytes[0]); + let __v_2611: G = G::from_u8(__u32_bytes[1]); + let __v_2612: G = G::from_u8(__u32_bytes[2]); + let __v_2613: G = G::from_u8(__u32_bytes[3]); + let __v_2614: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2610; let __vj = __v_2611; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2612; let __vj = __v_2613; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2615: G = G::from_u64(1); + let __v_2616: G = (__v_2614 - __v_2615); + let __v_2617: G = G::from_u64(2); + let __v_2618: G = (__v_2614 - __v_2617); + let __v_2619: G = (__v_2616 * __v_2618); + let __v_2620: G = (__v_2614 * __v_2619); + let __v_2621: G = G::from_u64(0); + if (__v_2620 != __v_2621) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2620.as_canonical_u64(), rhs: __v_2621.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2622: G = if unconstrained { Bytes2::xor(&__v_2590, &__v_2610) } else { bytes2_xor_value(__v_2590, __v_2610, record) }; + let __v_2623: G = if unconstrained { Bytes2::xor(&__v_2591, &__v_2611) } else { bytes2_xor_value(__v_2591, __v_2611, record) }; + let __v_2624: G = if unconstrained { Bytes2::xor(&__v_2588, &__v_2612) } else { bytes2_xor_value(__v_2588, __v_2612, record) }; + let __v_2625: G = if unconstrained { Bytes2::xor(&__v_2589, &__v_2613) } else { bytes2_xor_value(__v_2589, __v_2613, record) }; + let __u32_sum: u128 = u128::from(((__v_2592.as_canonical_u64() << 0) | (__v_2593.as_canonical_u64() << 8) | (__v_2594.as_canonical_u64() << 16) | (__v_2595.as_canonical_u64() << 24))) + u128::from(((__v_2623.as_canonical_u64() << 0) | (__v_2624.as_canonical_u64() << 8) | (__v_2625.as_canonical_u64() << 16) | (__v_2622.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2626: G = G::from_u8(__u32_bytes[0]); + let __v_2627: G = G::from_u8(__u32_bytes[1]); + let __v_2628: G = G::from_u8(__u32_bytes[2]); + let __v_2629: G = G::from_u8(__u32_bytes[3]); + let __v_2630: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2626; let __vj = __v_2627; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2628; let __vj = __v_2629; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2631: G = (__v_2630 * __v_2630); + if (__v_2631 != __v_2630) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2631.as_canonical_u64(), rhs: __v_2630.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2606, &__v_2626) } else { bytes2_xor_split7_value(__v_2606, __v_2626, record) }; + let __v_2632: G = __b2_out.0; + let __v_2633: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2607, &__v_2627) } else { bytes2_xor_split7_value(__v_2607, __v_2627, record) }; + let __v_2634: G = __b2_out.0; + let __v_2635: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2608, &__v_2628) } else { bytes2_xor_split7_value(__v_2608, __v_2628, record) }; + let __v_2636: G = __b2_out.0; + let __v_2637: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2609, &__v_2629) } else { bytes2_xor_split7_value(__v_2609, __v_2629, record) }; + let __v_2638: G = __b2_out.0; + let __v_2639: G = __b2_out.1; + let __v_2640: G = (__v_2632 + __v_2635); + let __v_2641: G = (__v_2634 + __v_2637); + let __v_2642: G = (__v_2636 + __v_2639); + let __v_2643: G = (__v_2638 + __v_2633); + let __u32_sum: u128 = u128::from(((__v_2406.as_canonical_u64() << 0) | (__v_2407.as_canonical_u64() << 8) | (__v_2408.as_canonical_u64() << 16) | (__v_2409.as_canonical_u64() << 24))) + u128::from(((__v_2504.as_canonical_u64() << 0) | (__v_2505.as_canonical_u64() << 8) | (__v_2506.as_canonical_u64() << 16) | (__v_2507.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2644: G = G::from_u8(__u32_bytes[0]); + let __v_2645: G = G::from_u8(__u32_bytes[1]); + let __v_2646: G = G::from_u8(__u32_bytes[2]); + let __v_2647: G = G::from_u8(__u32_bytes[3]); + let __v_2648: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2644; let __vj = __v_2645; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2646; let __vj = __v_2647; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2649: G = G::from_u64(1); + let __v_2650: G = (__v_2648 - __v_2649); + let __v_2651: G = G::from_u64(2); + let __v_2652: G = (__v_2648 - __v_2651); + let __v_2653: G = (__v_2650 * __v_2652); + let __v_2654: G = (__v_2648 * __v_2653); + let __v_2655: G = G::from_u64(0); + if (__v_2654 != __v_2655) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2654.as_canonical_u64(), rhs: __v_2655.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2656: G = if unconstrained { Bytes2::xor(&__v_2351, &__v_2644) } else { bytes2_xor_value(__v_2351, __v_2644, record) }; + let __v_2657: G = if unconstrained { Bytes2::xor(&__v_2352, &__v_2645) } else { bytes2_xor_value(__v_2352, __v_2645, record) }; + let __v_2658: G = if unconstrained { Bytes2::xor(&__v_2353, &__v_2646) } else { bytes2_xor_value(__v_2353, __v_2646, record) }; + let __v_2659: G = if unconstrained { Bytes2::xor(&__v_2350, &__v_2647) } else { bytes2_xor_value(__v_2350, __v_2647, record) }; + let __u32_sum: u128 = u128::from(((__v_2558.as_canonical_u64() << 0) | (__v_2559.as_canonical_u64() << 8) | (__v_2560.as_canonical_u64() << 16) | (__v_2561.as_canonical_u64() << 24))) + u128::from(((__v_2658.as_canonical_u64() << 0) | (__v_2659.as_canonical_u64() << 8) | (__v_2656.as_canonical_u64() << 16) | (__v_2657.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2660: G = G::from_u8(__u32_bytes[0]); + let __v_2661: G = G::from_u8(__u32_bytes[1]); + let __v_2662: G = G::from_u8(__u32_bytes[2]); + let __v_2663: G = G::from_u8(__u32_bytes[3]); + let __v_2664: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2660; let __vj = __v_2661; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2662; let __vj = __v_2663; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2665: G = (__v_2664 * __v_2664); + if (__v_2665 != __v_2664) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2665.as_canonical_u64(), rhs: __v_2664.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2504, &__v_2660) } else { bytes2_xor_split4_value(__v_2504, __v_2660, record) }; + let __v_2666: G = __b2_out.0; + let __v_2667: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2505, &__v_2661) } else { bytes2_xor_split4_value(__v_2505, __v_2661, record) }; + let __v_2668: G = __b2_out.0; + let __v_2669: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2506, &__v_2662) } else { bytes2_xor_split4_value(__v_2506, __v_2662, record) }; + let __v_2670: G = __b2_out.0; + let __v_2671: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2507, &__v_2663) } else { bytes2_xor_split4_value(__v_2507, __v_2663, record) }; + let __v_2672: G = __b2_out.0; + let __v_2673: G = __b2_out.1; + let __v_2674: G = (__v_2668 + __v_2671); + let __v_2675: G = (__v_2670 + __v_2673); + let __v_2676: G = (__v_2672 + __v_2667); + let __v_2677: G = (__v_2666 + __v_2669); + let __u32_sum: u128 = u128::from(((__v_2644.as_canonical_u64() << 0) | (__v_2645.as_canonical_u64() << 8) | (__v_2646.as_canonical_u64() << 16) | (__v_2647.as_canonical_u64() << 24))) + u128::from(((__v_2674.as_canonical_u64() << 0) | (__v_2675.as_canonical_u64() << 8) | (__v_2676.as_canonical_u64() << 16) | (__v_2677.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2678: G = G::from_u8(__u32_bytes[0]); + let __v_2679: G = G::from_u8(__u32_bytes[1]); + let __v_2680: G = G::from_u8(__u32_bytes[2]); + let __v_2681: G = G::from_u8(__u32_bytes[3]); + let __v_2682: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2678; let __vj = __v_2679; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2680; let __vj = __v_2681; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2683: G = G::from_u64(1); + let __v_2684: G = (__v_2682 - __v_2683); + let __v_2685: G = G::from_u64(2); + let __v_2686: G = (__v_2682 - __v_2685); + let __v_2687: G = (__v_2684 * __v_2686); + let __v_2688: G = (__v_2682 * __v_2687); + let __v_2689: G = G::from_u64(0); + if (__v_2688 != __v_2689) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2688.as_canonical_u64(), rhs: __v_2689.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2690: G = if unconstrained { Bytes2::xor(&__v_2658, &__v_2678) } else { bytes2_xor_value(__v_2658, __v_2678, record) }; + let __v_2691: G = if unconstrained { Bytes2::xor(&__v_2659, &__v_2679) } else { bytes2_xor_value(__v_2659, __v_2679, record) }; + let __v_2692: G = if unconstrained { Bytes2::xor(&__v_2656, &__v_2680) } else { bytes2_xor_value(__v_2656, __v_2680, record) }; + let __v_2693: G = if unconstrained { Bytes2::xor(&__v_2657, &__v_2681) } else { bytes2_xor_value(__v_2657, __v_2681, record) }; + let __u32_sum: u128 = u128::from(((__v_2660.as_canonical_u64() << 0) | (__v_2661.as_canonical_u64() << 8) | (__v_2662.as_canonical_u64() << 16) | (__v_2663.as_canonical_u64() << 24))) + u128::from(((__v_2691.as_canonical_u64() << 0) | (__v_2692.as_canonical_u64() << 8) | (__v_2693.as_canonical_u64() << 16) | (__v_2690.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2694: G = G::from_u8(__u32_bytes[0]); + let __v_2695: G = G::from_u8(__u32_bytes[1]); + let __v_2696: G = G::from_u8(__u32_bytes[2]); + let __v_2697: G = G::from_u8(__u32_bytes[3]); + let __v_2698: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2694; let __vj = __v_2695; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2696; let __vj = __v_2697; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2699: G = (__v_2698 * __v_2698); + if (__v_2699 != __v_2698) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2699.as_canonical_u64(), rhs: __v_2698.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2674, &__v_2694) } else { bytes2_xor_split7_value(__v_2674, __v_2694, record) }; + let __v_2700: G = __b2_out.0; + let __v_2701: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2675, &__v_2695) } else { bytes2_xor_split7_value(__v_2675, __v_2695, record) }; + let __v_2702: G = __b2_out.0; + let __v_2703: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2676, &__v_2696) } else { bytes2_xor_split7_value(__v_2676, __v_2696, record) }; + let __v_2704: G = __b2_out.0; + let __v_2705: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2677, &__v_2697) } else { bytes2_xor_split7_value(__v_2677, __v_2697, record) }; + let __v_2706: G = __b2_out.0; + let __v_2707: G = __b2_out.1; + let __v_2708: G = (__v_2700 + __v_2703); + let __v_2709: G = (__v_2702 + __v_2705); + let __v_2710: G = (__v_2704 + __v_2707); + let __v_2711: G = (__v_2706 + __v_2701); + let __u32_sum: u128 = u128::from(((__v_2474.as_canonical_u64() << 0) | (__v_2475.as_canonical_u64() << 8) | (__v_2476.as_canonical_u64() << 16) | (__v_2477.as_canonical_u64() << 24))) + u128::from(((__v_2572.as_canonical_u64() << 0) | (__v_2573.as_canonical_u64() << 8) | (__v_2574.as_canonical_u64() << 16) | (__v_2575.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2712: G = G::from_u8(__u32_bytes[0]); + let __v_2713: G = G::from_u8(__u32_bytes[1]); + let __v_2714: G = G::from_u8(__u32_bytes[2]); + let __v_2715: G = G::from_u8(__u32_bytes[3]); + let __v_2716: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2712; let __vj = __v_2713; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2714; let __vj = __v_2715; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2717: G = G::from_u64(1); + let __v_2718: G = (__v_2716 - __v_2717); + let __v_2719: G = G::from_u64(2); + let __v_2720: G = (__v_2716 - __v_2719); + let __v_2721: G = (__v_2718 * __v_2720); + let __v_2722: G = (__v_2716 * __v_2721); + let __v_2723: G = G::from_u64(0); + if (__v_2722 != __v_2723) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2722.as_canonical_u64(), rhs: __v_2723.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2724: G = if unconstrained { Bytes2::xor(&__v_2419, &__v_2712) } else { bytes2_xor_value(__v_2419, __v_2712, record) }; + let __v_2725: G = if unconstrained { Bytes2::xor(&__v_2420, &__v_2713) } else { bytes2_xor_value(__v_2420, __v_2713, record) }; + let __v_2726: G = if unconstrained { Bytes2::xor(&__v_2421, &__v_2714) } else { bytes2_xor_value(__v_2421, __v_2714, record) }; + let __v_2727: G = if unconstrained { Bytes2::xor(&__v_2418, &__v_2715) } else { bytes2_xor_value(__v_2418, __v_2715, record) }; + let __u32_sum: u128 = u128::from(((__v_2354.as_canonical_u64() << 0) | (__v_2355.as_canonical_u64() << 8) | (__v_2356.as_canonical_u64() << 16) | (__v_2357.as_canonical_u64() << 24))) + u128::from(((__v_2726.as_canonical_u64() << 0) | (__v_2727.as_canonical_u64() << 8) | (__v_2724.as_canonical_u64() << 16) | (__v_2725.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2728: G = G::from_u8(__u32_bytes[0]); + let __v_2729: G = G::from_u8(__u32_bytes[1]); + let __v_2730: G = G::from_u8(__u32_bytes[2]); + let __v_2731: G = G::from_u8(__u32_bytes[3]); + let __v_2732: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2728; let __vj = __v_2729; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2730; let __vj = __v_2731; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2733: G = (__v_2732 * __v_2732); + if (__v_2733 != __v_2732) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2733.as_canonical_u64(), rhs: __v_2732.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2572, &__v_2728) } else { bytes2_xor_split4_value(__v_2572, __v_2728, record) }; + let __v_2734: G = __b2_out.0; + let __v_2735: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2573, &__v_2729) } else { bytes2_xor_split4_value(__v_2573, __v_2729, record) }; + let __v_2736: G = __b2_out.0; + let __v_2737: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2574, &__v_2730) } else { bytes2_xor_split4_value(__v_2574, __v_2730, record) }; + let __v_2738: G = __b2_out.0; + let __v_2739: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2575, &__v_2731) } else { bytes2_xor_split4_value(__v_2575, __v_2731, record) }; + let __v_2740: G = __b2_out.0; + let __v_2741: G = __b2_out.1; + let __v_2742: G = (__v_2736 + __v_2739); + let __v_2743: G = (__v_2738 + __v_2741); + let __v_2744: G = (__v_2740 + __v_2735); + let __v_2745: G = (__v_2734 + __v_2737); + let __u32_sum: u128 = u128::from(((__v_2712.as_canonical_u64() << 0) | (__v_2713.as_canonical_u64() << 8) | (__v_2714.as_canonical_u64() << 16) | (__v_2715.as_canonical_u64() << 24))) + u128::from(((__v_2742.as_canonical_u64() << 0) | (__v_2743.as_canonical_u64() << 8) | (__v_2744.as_canonical_u64() << 16) | (__v_2745.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2746: G = G::from_u8(__u32_bytes[0]); + let __v_2747: G = G::from_u8(__u32_bytes[1]); + let __v_2748: G = G::from_u8(__u32_bytes[2]); + let __v_2749: G = G::from_u8(__u32_bytes[3]); + let __v_2750: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2746; let __vj = __v_2747; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2748; let __vj = __v_2749; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2751: G = G::from_u64(1); + let __v_2752: G = (__v_2750 - __v_2751); + let __v_2753: G = G::from_u64(2); + let __v_2754: G = (__v_2750 - __v_2753); + let __v_2755: G = (__v_2752 * __v_2754); + let __v_2756: G = (__v_2750 * __v_2755); + let __v_2757: G = G::from_u64(0); + if (__v_2756 != __v_2757) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2756.as_canonical_u64(), rhs: __v_2757.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2758: G = if unconstrained { Bytes2::xor(&__v_2726, &__v_2746) } else { bytes2_xor_value(__v_2726, __v_2746, record) }; + let __v_2759: G = if unconstrained { Bytes2::xor(&__v_2727, &__v_2747) } else { bytes2_xor_value(__v_2727, __v_2747, record) }; + let __v_2760: G = if unconstrained { Bytes2::xor(&__v_2724, &__v_2748) } else { bytes2_xor_value(__v_2724, __v_2748, record) }; + let __v_2761: G = if unconstrained { Bytes2::xor(&__v_2725, &__v_2749) } else { bytes2_xor_value(__v_2725, __v_2749, record) }; + let __u32_sum: u128 = u128::from(((__v_2728.as_canonical_u64() << 0) | (__v_2729.as_canonical_u64() << 8) | (__v_2730.as_canonical_u64() << 16) | (__v_2731.as_canonical_u64() << 24))) + u128::from(((__v_2759.as_canonical_u64() << 0) | (__v_2760.as_canonical_u64() << 8) | (__v_2761.as_canonical_u64() << 16) | (__v_2758.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2762: G = G::from_u8(__u32_bytes[0]); + let __v_2763: G = G::from_u8(__u32_bytes[1]); + let __v_2764: G = G::from_u8(__u32_bytes[2]); + let __v_2765: G = G::from_u8(__u32_bytes[3]); + let __v_2766: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2762; let __vj = __v_2763; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2764; let __vj = __v_2765; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2767: G = (__v_2766 * __v_2766); + if (__v_2767 != __v_2766) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2767.as_canonical_u64(), rhs: __v_2766.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2742, &__v_2762) } else { bytes2_xor_split7_value(__v_2742, __v_2762, record) }; + let __v_2768: G = __b2_out.0; + let __v_2769: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2743, &__v_2763) } else { bytes2_xor_split7_value(__v_2743, __v_2763, record) }; + let __v_2770: G = __b2_out.0; + let __v_2771: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2744, &__v_2764) } else { bytes2_xor_split7_value(__v_2744, __v_2764, record) }; + let __v_2772: G = __b2_out.0; + let __v_2773: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2745, &__v_2765) } else { bytes2_xor_split7_value(__v_2745, __v_2765, record) }; + let __v_2774: G = __b2_out.0; + let __v_2775: G = __b2_out.1; + let __v_2776: G = (__v_2768 + __v_2771); + let __v_2777: G = (__v_2770 + __v_2773); + let __v_2778: G = (__v_2772 + __v_2775); + let __v_2779: G = (__v_2774 + __v_2769); + let __u32_sum: u128 = u128::from(((__v_2542.as_canonical_u64() << 0) | (__v_2543.as_canonical_u64() << 8) | (__v_2544.as_canonical_u64() << 16) | (__v_2545.as_canonical_u64() << 24))) + u128::from(((__v_2368.as_canonical_u64() << 0) | (__v_2369.as_canonical_u64() << 8) | (__v_2370.as_canonical_u64() << 16) | (__v_2371.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2780: G = G::from_u8(__u32_bytes[0]); + let __v_2781: G = G::from_u8(__u32_bytes[1]); + let __v_2782: G = G::from_u8(__u32_bytes[2]); + let __v_2783: G = G::from_u8(__u32_bytes[3]); + let __v_2784: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2780; let __vj = __v_2781; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2782; let __vj = __v_2783; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2785: G = G::from_u64(1); + let __v_2786: G = (__v_2784 - __v_2785); + let __v_2787: G = G::from_u64(2); + let __v_2788: G = (__v_2784 - __v_2787); + let __v_2789: G = (__v_2786 * __v_2788); + let __v_2790: G = (__v_2784 * __v_2789); + let __v_2791: G = G::from_u64(0); + if (__v_2790 != __v_2791) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2790.as_canonical_u64(), rhs: __v_2791.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2792: G = if unconstrained { Bytes2::xor(&__v_2487, &__v_2780) } else { bytes2_xor_value(__v_2487, __v_2780, record) }; + let __v_2793: G = if unconstrained { Bytes2::xor(&__v_2488, &__v_2781) } else { bytes2_xor_value(__v_2488, __v_2781, record) }; + let __v_2794: G = if unconstrained { Bytes2::xor(&__v_2489, &__v_2782) } else { bytes2_xor_value(__v_2489, __v_2782, record) }; + let __v_2795: G = if unconstrained { Bytes2::xor(&__v_2486, &__v_2783) } else { bytes2_xor_value(__v_2486, __v_2783, record) }; + let __u32_sum: u128 = u128::from(((__v_2422.as_canonical_u64() << 0) | (__v_2423.as_canonical_u64() << 8) | (__v_2424.as_canonical_u64() << 16) | (__v_2425.as_canonical_u64() << 24))) + u128::from(((__v_2794.as_canonical_u64() << 0) | (__v_2795.as_canonical_u64() << 8) | (__v_2792.as_canonical_u64() << 16) | (__v_2793.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2796: G = G::from_u8(__u32_bytes[0]); + let __v_2797: G = G::from_u8(__u32_bytes[1]); + let __v_2798: G = G::from_u8(__u32_bytes[2]); + let __v_2799: G = G::from_u8(__u32_bytes[3]); + let __v_2800: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2796; let __vj = __v_2797; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2798; let __vj = __v_2799; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2801: G = (__v_2800 * __v_2800); + if (__v_2801 != __v_2800) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2801.as_canonical_u64(), rhs: __v_2800.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2368, &__v_2796) } else { bytes2_xor_split4_value(__v_2368, __v_2796, record) }; + let __v_2802: G = __b2_out.0; + let __v_2803: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2369, &__v_2797) } else { bytes2_xor_split4_value(__v_2369, __v_2797, record) }; + let __v_2804: G = __b2_out.0; + let __v_2805: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2370, &__v_2798) } else { bytes2_xor_split4_value(__v_2370, __v_2798, record) }; + let __v_2806: G = __b2_out.0; + let __v_2807: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2371, &__v_2799) } else { bytes2_xor_split4_value(__v_2371, __v_2799, record) }; + let __v_2808: G = __b2_out.0; + let __v_2809: G = __b2_out.1; + let __v_2810: G = (__v_2804 + __v_2807); + let __v_2811: G = (__v_2806 + __v_2809); + let __v_2812: G = (__v_2808 + __v_2803); + let __v_2813: G = (__v_2802 + __v_2805); + let __u32_sum: u128 = u128::from(((__v_2780.as_canonical_u64() << 0) | (__v_2781.as_canonical_u64() << 8) | (__v_2782.as_canonical_u64() << 16) | (__v_2783.as_canonical_u64() << 24))) + u128::from(((__v_2810.as_canonical_u64() << 0) | (__v_2811.as_canonical_u64() << 8) | (__v_2812.as_canonical_u64() << 16) | (__v_2813.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2814: G = G::from_u8(__u32_bytes[0]); + let __v_2815: G = G::from_u8(__u32_bytes[1]); + let __v_2816: G = G::from_u8(__u32_bytes[2]); + let __v_2817: G = G::from_u8(__u32_bytes[3]); + let __v_2818: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2814; let __vj = __v_2815; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2816; let __vj = __v_2817; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2819: G = G::from_u64(1); + let __v_2820: G = (__v_2818 - __v_2819); + let __v_2821: G = G::from_u64(2); + let __v_2822: G = (__v_2818 - __v_2821); + let __v_2823: G = (__v_2820 * __v_2822); + let __v_2824: G = (__v_2818 * __v_2823); + let __v_2825: G = G::from_u64(0); + if (__v_2824 != __v_2825) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2824.as_canonical_u64(), rhs: __v_2825.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2826: G = if unconstrained { Bytes2::xor(&__v_2794, &__v_2814) } else { bytes2_xor_value(__v_2794, __v_2814, record) }; + let __v_2827: G = if unconstrained { Bytes2::xor(&__v_2795, &__v_2815) } else { bytes2_xor_value(__v_2795, __v_2815, record) }; + let __v_2828: G = if unconstrained { Bytes2::xor(&__v_2792, &__v_2816) } else { bytes2_xor_value(__v_2792, __v_2816, record) }; + let __v_2829: G = if unconstrained { Bytes2::xor(&__v_2793, &__v_2817) } else { bytes2_xor_value(__v_2793, __v_2817, record) }; + let __u32_sum: u128 = u128::from(((__v_2796.as_canonical_u64() << 0) | (__v_2797.as_canonical_u64() << 8) | (__v_2798.as_canonical_u64() << 16) | (__v_2799.as_canonical_u64() << 24))) + u128::from(((__v_2827.as_canonical_u64() << 0) | (__v_2828.as_canonical_u64() << 8) | (__v_2829.as_canonical_u64() << 16) | (__v_2826.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2830: G = G::from_u8(__u32_bytes[0]); + let __v_2831: G = G::from_u8(__u32_bytes[1]); + let __v_2832: G = G::from_u8(__u32_bytes[2]); + let __v_2833: G = G::from_u8(__u32_bytes[3]); + let __v_2834: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2830; let __vj = __v_2831; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2832; let __vj = __v_2833; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2835: G = (__v_2834 * __v_2834); + if (__v_2835 != __v_2834) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2835.as_canonical_u64(), rhs: __v_2834.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2810, &__v_2830) } else { bytes2_xor_split7_value(__v_2810, __v_2830, record) }; + let __v_2836: G = __b2_out.0; + let __v_2837: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2811, &__v_2831) } else { bytes2_xor_split7_value(__v_2811, __v_2831, record) }; + let __v_2838: G = __b2_out.0; + let __v_2839: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2812, &__v_2832) } else { bytes2_xor_split7_value(__v_2812, __v_2832, record) }; + let __v_2840: G = __b2_out.0; + let __v_2841: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2813, &__v_2833) } else { bytes2_xor_split7_value(__v_2813, __v_2833, record) }; + let __v_2842: G = __b2_out.0; + let __v_2843: G = __b2_out.1; + let __v_2844: G = (__v_2836 + __v_2839); + let __v_2845: G = (__v_2838 + __v_2841); + let __v_2846: G = (__v_2840 + __v_2843); + let __v_2847: G = (__v_2842 + __v_2837); + let __u32_sum: u128 = u128::from(((__v_2610.as_canonical_u64() << 0) | (__v_2611.as_canonical_u64() << 8) | (__v_2612.as_canonical_u64() << 16) | (__v_2613.as_canonical_u64() << 24))) + u128::from(((__v_2844.as_canonical_u64() << 0) | (__v_2845.as_canonical_u64() << 8) | (__v_2846.as_canonical_u64() << 16) | (__v_2847.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2848: G = G::from_u8(__u32_bytes[0]); + let __v_2849: G = G::from_u8(__u32_bytes[1]); + let __v_2850: G = G::from_u8(__u32_bytes[2]); + let __v_2851: G = G::from_u8(__u32_bytes[3]); + let __v_2852: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2848; let __vj = __v_2849; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2850; let __vj = __v_2851; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2853: G = G::from_u64(1); + let __v_2854: G = (__v_2852 - __v_2853); + let __v_2855: G = G::from_u64(2); + let __v_2856: G = (__v_2852 - __v_2855); + let __v_2857: G = (__v_2854 * __v_2856); + let __v_2858: G = (__v_2852 * __v_2857); + let __v_2859: G = G::from_u64(0); + if (__v_2858 != __v_2859) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2858.as_canonical_u64(), rhs: __v_2859.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2860: G = if unconstrained { Bytes2::xor(&__v_2691, &__v_2848) } else { bytes2_xor_value(__v_2691, __v_2848, record) }; + let __v_2861: G = if unconstrained { Bytes2::xor(&__v_2692, &__v_2849) } else { bytes2_xor_value(__v_2692, __v_2849, record) }; + let __v_2862: G = if unconstrained { Bytes2::xor(&__v_2693, &__v_2850) } else { bytes2_xor_value(__v_2693, __v_2850, record) }; + let __v_2863: G = if unconstrained { Bytes2::xor(&__v_2690, &__v_2851) } else { bytes2_xor_value(__v_2690, __v_2851, record) }; + let __u32_sum: u128 = u128::from(((__v_2762.as_canonical_u64() << 0) | (__v_2763.as_canonical_u64() << 8) | (__v_2764.as_canonical_u64() << 16) | (__v_2765.as_canonical_u64() << 24))) + u128::from(((__v_2862.as_canonical_u64() << 0) | (__v_2863.as_canonical_u64() << 8) | (__v_2860.as_canonical_u64() << 16) | (__v_2861.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2864: G = G::from_u8(__u32_bytes[0]); + let __v_2865: G = G::from_u8(__u32_bytes[1]); + let __v_2866: G = G::from_u8(__u32_bytes[2]); + let __v_2867: G = G::from_u8(__u32_bytes[3]); + let __v_2868: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2864; let __vj = __v_2865; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2866; let __vj = __v_2867; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2869: G = (__v_2868 * __v_2868); + if (__v_2869 != __v_2868) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2869.as_canonical_u64(), rhs: __v_2868.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2844, &__v_2864) } else { bytes2_xor_split4_value(__v_2844, __v_2864, record) }; + let __v_2870: G = __b2_out.0; + let __v_2871: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2845, &__v_2865) } else { bytes2_xor_split4_value(__v_2845, __v_2865, record) }; + let __v_2872: G = __b2_out.0; + let __v_2873: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2846, &__v_2866) } else { bytes2_xor_split4_value(__v_2846, __v_2866, record) }; + let __v_2874: G = __b2_out.0; + let __v_2875: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2847, &__v_2867) } else { bytes2_xor_split4_value(__v_2847, __v_2867, record) }; + let __v_2876: G = __b2_out.0; + let __v_2877: G = __b2_out.1; + let __v_2878: G = (__v_2872 + __v_2875); + let __v_2879: G = (__v_2874 + __v_2877); + let __v_2880: G = (__v_2876 + __v_2871); + let __v_2881: G = (__v_2870 + __v_2873); + let __u32_sum: u128 = u128::from(((__v_2848.as_canonical_u64() << 0) | (__v_2849.as_canonical_u64() << 8) | (__v_2850.as_canonical_u64() << 16) | (__v_2851.as_canonical_u64() << 24))) + u128::from(((__v_2878.as_canonical_u64() << 0) | (__v_2879.as_canonical_u64() << 8) | (__v_2880.as_canonical_u64() << 16) | (__v_2881.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2882: G = G::from_u8(__u32_bytes[0]); + let __v_2883: G = G::from_u8(__u32_bytes[1]); + let __v_2884: G = G::from_u8(__u32_bytes[2]); + let __v_2885: G = G::from_u8(__u32_bytes[3]); + let __v_2886: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2882; let __vj = __v_2883; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2884; let __vj = __v_2885; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2887: G = G::from_u64(1); + let __v_2888: G = (__v_2886 - __v_2887); + let __v_2889: G = G::from_u64(2); + let __v_2890: G = (__v_2886 - __v_2889); + let __v_2891: G = (__v_2888 * __v_2890); + let __v_2892: G = (__v_2886 * __v_2891); + let __v_2893: G = G::from_u64(0); + if (__v_2892 != __v_2893) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2892.as_canonical_u64(), rhs: __v_2893.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2894: G = if unconstrained { Bytes2::xor(&__v_2862, &__v_2882) } else { bytes2_xor_value(__v_2862, __v_2882, record) }; + let __v_2895: G = if unconstrained { Bytes2::xor(&__v_2863, &__v_2883) } else { bytes2_xor_value(__v_2863, __v_2883, record) }; + let __v_2896: G = if unconstrained { Bytes2::xor(&__v_2860, &__v_2884) } else { bytes2_xor_value(__v_2860, __v_2884, record) }; + let __v_2897: G = if unconstrained { Bytes2::xor(&__v_2861, &__v_2885) } else { bytes2_xor_value(__v_2861, __v_2885, record) }; + let __u32_sum: u128 = u128::from(((__v_2864.as_canonical_u64() << 0) | (__v_2865.as_canonical_u64() << 8) | (__v_2866.as_canonical_u64() << 16) | (__v_2867.as_canonical_u64() << 24))) + u128::from(((__v_2895.as_canonical_u64() << 0) | (__v_2896.as_canonical_u64() << 8) | (__v_2897.as_canonical_u64() << 16) | (__v_2894.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2898: G = G::from_u8(__u32_bytes[0]); + let __v_2899: G = G::from_u8(__u32_bytes[1]); + let __v_2900: G = G::from_u8(__u32_bytes[2]); + let __v_2901: G = G::from_u8(__u32_bytes[3]); + let __v_2902: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2898; let __vj = __v_2899; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2900; let __vj = __v_2901; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2903: G = (__v_2902 * __v_2902); + if (__v_2903 != __v_2902) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2903.as_canonical_u64(), rhs: __v_2902.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2878, &__v_2898) } else { bytes2_xor_split7_value(__v_2878, __v_2898, record) }; + let __v_2904: G = __b2_out.0; + let __v_2905: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2879, &__v_2899) } else { bytes2_xor_split7_value(__v_2879, __v_2899, record) }; + let __v_2906: G = __b2_out.0; + let __v_2907: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2880, &__v_2900) } else { bytes2_xor_split7_value(__v_2880, __v_2900, record) }; + let __v_2908: G = __b2_out.0; + let __v_2909: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2881, &__v_2901) } else { bytes2_xor_split7_value(__v_2881, __v_2901, record) }; + let __v_2910: G = __b2_out.0; + let __v_2911: G = __b2_out.1; + let __v_2912: G = (__v_2904 + __v_2907); + let __v_2913: G = (__v_2906 + __v_2909); + let __v_2914: G = (__v_2908 + __v_2911); + let __v_2915: G = (__v_2910 + __v_2905); + let __u32_sum: u128 = u128::from(((__v_2678.as_canonical_u64() << 0) | (__v_2679.as_canonical_u64() << 8) | (__v_2680.as_canonical_u64() << 16) | (__v_2681.as_canonical_u64() << 24))) + u128::from(((__v_2640.as_canonical_u64() << 0) | (__v_2641.as_canonical_u64() << 8) | (__v_2642.as_canonical_u64() << 16) | (__v_2643.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2916: G = G::from_u8(__u32_bytes[0]); + let __v_2917: G = G::from_u8(__u32_bytes[1]); + let __v_2918: G = G::from_u8(__u32_bytes[2]); + let __v_2919: G = G::from_u8(__u32_bytes[3]); + let __v_2920: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2916; let __vj = __v_2917; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2918; let __vj = __v_2919; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2921: G = G::from_u64(1); + let __v_2922: G = (__v_2920 - __v_2921); + let __v_2923: G = G::from_u64(2); + let __v_2924: G = (__v_2920 - __v_2923); + let __v_2925: G = (__v_2922 * __v_2924); + let __v_2926: G = (__v_2920 * __v_2925); + let __v_2927: G = G::from_u64(0); + if (__v_2926 != __v_2927) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2926.as_canonical_u64(), rhs: __v_2927.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2928: G = if unconstrained { Bytes2::xor(&__v_2759, &__v_2916) } else { bytes2_xor_value(__v_2759, __v_2916, record) }; + let __v_2929: G = if unconstrained { Bytes2::xor(&__v_2760, &__v_2917) } else { bytes2_xor_value(__v_2760, __v_2917, record) }; + let __v_2930: G = if unconstrained { Bytes2::xor(&__v_2761, &__v_2918) } else { bytes2_xor_value(__v_2761, __v_2918, record) }; + let __v_2931: G = if unconstrained { Bytes2::xor(&__v_2758, &__v_2919) } else { bytes2_xor_value(__v_2758, __v_2919, record) }; + let __u32_sum: u128 = u128::from(((__v_2830.as_canonical_u64() << 0) | (__v_2831.as_canonical_u64() << 8) | (__v_2832.as_canonical_u64() << 16) | (__v_2833.as_canonical_u64() << 24))) + u128::from(((__v_2930.as_canonical_u64() << 0) | (__v_2931.as_canonical_u64() << 8) | (__v_2928.as_canonical_u64() << 16) | (__v_2929.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2932: G = G::from_u8(__u32_bytes[0]); + let __v_2933: G = G::from_u8(__u32_bytes[1]); + let __v_2934: G = G::from_u8(__u32_bytes[2]); + let __v_2935: G = G::from_u8(__u32_bytes[3]); + let __v_2936: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2932; let __vj = __v_2933; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2934; let __vj = __v_2935; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2937: G = (__v_2936 * __v_2936); + if (__v_2937 != __v_2936) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2937.as_canonical_u64(), rhs: __v_2936.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2640, &__v_2932) } else { bytes2_xor_split4_value(__v_2640, __v_2932, record) }; + let __v_2938: G = __b2_out.0; + let __v_2939: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2641, &__v_2933) } else { bytes2_xor_split4_value(__v_2641, __v_2933, record) }; + let __v_2940: G = __b2_out.0; + let __v_2941: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2642, &__v_2934) } else { bytes2_xor_split4_value(__v_2642, __v_2934, record) }; + let __v_2942: G = __b2_out.0; + let __v_2943: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2643, &__v_2935) } else { bytes2_xor_split4_value(__v_2643, __v_2935, record) }; + let __v_2944: G = __b2_out.0; + let __v_2945: G = __b2_out.1; + let __v_2946: G = (__v_2940 + __v_2943); + let __v_2947: G = (__v_2942 + __v_2945); + let __v_2948: G = (__v_2944 + __v_2939); + let __v_2949: G = (__v_2938 + __v_2941); + let __u32_sum: u128 = u128::from(((__v_2916.as_canonical_u64() << 0) | (__v_2917.as_canonical_u64() << 8) | (__v_2918.as_canonical_u64() << 16) | (__v_2919.as_canonical_u64() << 24))) + u128::from(((__v_2946.as_canonical_u64() << 0) | (__v_2947.as_canonical_u64() << 8) | (__v_2948.as_canonical_u64() << 16) | (__v_2949.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2950: G = G::from_u8(__u32_bytes[0]); + let __v_2951: G = G::from_u8(__u32_bytes[1]); + let __v_2952: G = G::from_u8(__u32_bytes[2]); + let __v_2953: G = G::from_u8(__u32_bytes[3]); + let __v_2954: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2950; let __vj = __v_2951; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2952; let __vj = __v_2953; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2955: G = G::from_u64(1); + let __v_2956: G = (__v_2954 - __v_2955); + let __v_2957: G = G::from_u64(2); + let __v_2958: G = (__v_2954 - __v_2957); + let __v_2959: G = (__v_2956 * __v_2958); + let __v_2960: G = (__v_2954 * __v_2959); + let __v_2961: G = G::from_u64(0); + if (__v_2960 != __v_2961) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2960.as_canonical_u64(), rhs: __v_2961.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2962: G = if unconstrained { Bytes2::xor(&__v_2930, &__v_2950) } else { bytes2_xor_value(__v_2930, __v_2950, record) }; + let __v_2963: G = if unconstrained { Bytes2::xor(&__v_2931, &__v_2951) } else { bytes2_xor_value(__v_2931, __v_2951, record) }; + let __v_2964: G = if unconstrained { Bytes2::xor(&__v_2928, &__v_2952) } else { bytes2_xor_value(__v_2928, __v_2952, record) }; + let __v_2965: G = if unconstrained { Bytes2::xor(&__v_2929, &__v_2953) } else { bytes2_xor_value(__v_2929, __v_2953, record) }; + let __u32_sum: u128 = u128::from(((__v_2932.as_canonical_u64() << 0) | (__v_2933.as_canonical_u64() << 8) | (__v_2934.as_canonical_u64() << 16) | (__v_2935.as_canonical_u64() << 24))) + u128::from(((__v_2963.as_canonical_u64() << 0) | (__v_2964.as_canonical_u64() << 8) | (__v_2965.as_canonical_u64() << 16) | (__v_2962.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2966: G = G::from_u8(__u32_bytes[0]); + let __v_2967: G = G::from_u8(__u32_bytes[1]); + let __v_2968: G = G::from_u8(__u32_bytes[2]); + let __v_2969: G = G::from_u8(__u32_bytes[3]); + let __v_2970: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2966; let __vj = __v_2967; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2968; let __vj = __v_2969; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2971: G = (__v_2970 * __v_2970); + if (__v_2971 != __v_2970) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2971.as_canonical_u64(), rhs: __v_2970.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2946, &__v_2966) } else { bytes2_xor_split7_value(__v_2946, __v_2966, record) }; + let __v_2972: G = __b2_out.0; + let __v_2973: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2947, &__v_2967) } else { bytes2_xor_split7_value(__v_2947, __v_2967, record) }; + let __v_2974: G = __b2_out.0; + let __v_2975: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2948, &__v_2968) } else { bytes2_xor_split7_value(__v_2948, __v_2968, record) }; + let __v_2976: G = __b2_out.0; + let __v_2977: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_2949, &__v_2969) } else { bytes2_xor_split7_value(__v_2949, __v_2969, record) }; + let __v_2978: G = __b2_out.0; + let __v_2979: G = __b2_out.1; + let __v_2980: G = (__v_2972 + __v_2975); + let __v_2981: G = (__v_2974 + __v_2977); + let __v_2982: G = (__v_2976 + __v_2979); + let __v_2983: G = (__v_2978 + __v_2973); + let __u32_sum: u128 = u128::from(((__v_2746.as_canonical_u64() << 0) | (__v_2747.as_canonical_u64() << 8) | (__v_2748.as_canonical_u64() << 16) | (__v_2749.as_canonical_u64() << 24))) + u128::from(((__v_2708.as_canonical_u64() << 0) | (__v_2709.as_canonical_u64() << 8) | (__v_2710.as_canonical_u64() << 16) | (__v_2711.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_2984: G = G::from_u8(__u32_bytes[0]); + let __v_2985: G = G::from_u8(__u32_bytes[1]); + let __v_2986: G = G::from_u8(__u32_bytes[2]); + let __v_2987: G = G::from_u8(__u32_bytes[3]); + let __v_2988: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_2984; let __vj = __v_2985; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_2986; let __vj = __v_2987; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_2989: G = G::from_u64(1); + let __v_2990: G = (__v_2988 - __v_2989); + let __v_2991: G = G::from_u64(2); + let __v_2992: G = (__v_2988 - __v_2991); + let __v_2993: G = (__v_2990 * __v_2992); + let __v_2994: G = (__v_2988 * __v_2993); + let __v_2995: G = G::from_u64(0); + if (__v_2994 != __v_2995) { + return Err(ExecError::AssertEqMismatch { lhs: __v_2994.as_canonical_u64(), rhs: __v_2995.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_2996: G = if unconstrained { Bytes2::xor(&__v_2827, &__v_2984) } else { bytes2_xor_value(__v_2827, __v_2984, record) }; + let __v_2997: G = if unconstrained { Bytes2::xor(&__v_2828, &__v_2985) } else { bytes2_xor_value(__v_2828, __v_2985, record) }; + let __v_2998: G = if unconstrained { Bytes2::xor(&__v_2829, &__v_2986) } else { bytes2_xor_value(__v_2829, __v_2986, record) }; + let __v_2999: G = if unconstrained { Bytes2::xor(&__v_2826, &__v_2987) } else { bytes2_xor_value(__v_2826, __v_2987, record) }; + let __u32_sum: u128 = u128::from(((__v_2626.as_canonical_u64() << 0) | (__v_2627.as_canonical_u64() << 8) | (__v_2628.as_canonical_u64() << 16) | (__v_2629.as_canonical_u64() << 24))) + u128::from(((__v_2998.as_canonical_u64() << 0) | (__v_2999.as_canonical_u64() << 8) | (__v_2996.as_canonical_u64() << 16) | (__v_2997.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3000: G = G::from_u8(__u32_bytes[0]); + let __v_3001: G = G::from_u8(__u32_bytes[1]); + let __v_3002: G = G::from_u8(__u32_bytes[2]); + let __v_3003: G = G::from_u8(__u32_bytes[3]); + let __v_3004: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3000; let __vj = __v_3001; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3002; let __vj = __v_3003; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3005: G = (__v_3004 * __v_3004); + if (__v_3005 != __v_3004) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3005.as_canonical_u64(), rhs: __v_3004.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2708, &__v_3000) } else { bytes2_xor_split4_value(__v_2708, __v_3000, record) }; + let __v_3006: G = __b2_out.0; + let __v_3007: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2709, &__v_3001) } else { bytes2_xor_split4_value(__v_2709, __v_3001, record) }; + let __v_3008: G = __b2_out.0; + let __v_3009: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2710, &__v_3002) } else { bytes2_xor_split4_value(__v_2710, __v_3002, record) }; + let __v_3010: G = __b2_out.0; + let __v_3011: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2711, &__v_3003) } else { bytes2_xor_split4_value(__v_2711, __v_3003, record) }; + let __v_3012: G = __b2_out.0; + let __v_3013: G = __b2_out.1; + let __v_3014: G = (__v_3008 + __v_3011); + let __v_3015: G = (__v_3010 + __v_3013); + let __v_3016: G = (__v_3012 + __v_3007); + let __v_3017: G = (__v_3006 + __v_3009); + let __u32_sum: u128 = u128::from(((__v_2984.as_canonical_u64() << 0) | (__v_2985.as_canonical_u64() << 8) | (__v_2986.as_canonical_u64() << 16) | (__v_2987.as_canonical_u64() << 24))) + u128::from(((__v_3014.as_canonical_u64() << 0) | (__v_3015.as_canonical_u64() << 8) | (__v_3016.as_canonical_u64() << 16) | (__v_3017.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3018: G = G::from_u8(__u32_bytes[0]); + let __v_3019: G = G::from_u8(__u32_bytes[1]); + let __v_3020: G = G::from_u8(__u32_bytes[2]); + let __v_3021: G = G::from_u8(__u32_bytes[3]); + let __v_3022: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3018; let __vj = __v_3019; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3020; let __vj = __v_3021; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3023: G = G::from_u64(1); + let __v_3024: G = (__v_3022 - __v_3023); + let __v_3025: G = G::from_u64(2); + let __v_3026: G = (__v_3022 - __v_3025); + let __v_3027: G = (__v_3024 * __v_3026); + let __v_3028: G = (__v_3022 * __v_3027); + let __v_3029: G = G::from_u64(0); + if (__v_3028 != __v_3029) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3028.as_canonical_u64(), rhs: __v_3029.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3030: G = if unconstrained { Bytes2::xor(&__v_2998, &__v_3018) } else { bytes2_xor_value(__v_2998, __v_3018, record) }; + let __v_3031: G = if unconstrained { Bytes2::xor(&__v_2999, &__v_3019) } else { bytes2_xor_value(__v_2999, __v_3019, record) }; + let __v_3032: G = if unconstrained { Bytes2::xor(&__v_2996, &__v_3020) } else { bytes2_xor_value(__v_2996, __v_3020, record) }; + let __v_3033: G = if unconstrained { Bytes2::xor(&__v_2997, &__v_3021) } else { bytes2_xor_value(__v_2997, __v_3021, record) }; + let __u32_sum: u128 = u128::from(((__v_3000.as_canonical_u64() << 0) | (__v_3001.as_canonical_u64() << 8) | (__v_3002.as_canonical_u64() << 16) | (__v_3003.as_canonical_u64() << 24))) + u128::from(((__v_3031.as_canonical_u64() << 0) | (__v_3032.as_canonical_u64() << 8) | (__v_3033.as_canonical_u64() << 16) | (__v_3030.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3034: G = G::from_u8(__u32_bytes[0]); + let __v_3035: G = G::from_u8(__u32_bytes[1]); + let __v_3036: G = G::from_u8(__u32_bytes[2]); + let __v_3037: G = G::from_u8(__u32_bytes[3]); + let __v_3038: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3034; let __vj = __v_3035; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3036; let __vj = __v_3037; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3039: G = (__v_3038 * __v_3038); + if (__v_3039 != __v_3038) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3039.as_canonical_u64(), rhs: __v_3038.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3014, &__v_3034) } else { bytes2_xor_split7_value(__v_3014, __v_3034, record) }; + let __v_3040: G = __b2_out.0; + let __v_3041: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3015, &__v_3035) } else { bytes2_xor_split7_value(__v_3015, __v_3035, record) }; + let __v_3042: G = __b2_out.0; + let __v_3043: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3016, &__v_3036) } else { bytes2_xor_split7_value(__v_3016, __v_3036, record) }; + let __v_3044: G = __b2_out.0; + let __v_3045: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3017, &__v_3037) } else { bytes2_xor_split7_value(__v_3017, __v_3037, record) }; + let __v_3046: G = __b2_out.0; + let __v_3047: G = __b2_out.1; + let __v_3048: G = (__v_3040 + __v_3043); + let __v_3049: G = (__v_3042 + __v_3045); + let __v_3050: G = (__v_3044 + __v_3047); + let __v_3051: G = (__v_3046 + __v_3041); + let __u32_sum: u128 = u128::from(((__v_2814.as_canonical_u64() << 0) | (__v_2815.as_canonical_u64() << 8) | (__v_2816.as_canonical_u64() << 16) | (__v_2817.as_canonical_u64() << 24))) + u128::from(((__v_2776.as_canonical_u64() << 0) | (__v_2777.as_canonical_u64() << 8) | (__v_2778.as_canonical_u64() << 16) | (__v_2779.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3052: G = G::from_u8(__u32_bytes[0]); + let __v_3053: G = G::from_u8(__u32_bytes[1]); + let __v_3054: G = G::from_u8(__u32_bytes[2]); + let __v_3055: G = G::from_u8(__u32_bytes[3]); + let __v_3056: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3052; let __vj = __v_3053; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3054; let __vj = __v_3055; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3057: G = G::from_u64(1); + let __v_3058: G = (__v_3056 - __v_3057); + let __v_3059: G = G::from_u64(2); + let __v_3060: G = (__v_3056 - __v_3059); + let __v_3061: G = (__v_3058 * __v_3060); + let __v_3062: G = (__v_3056 * __v_3061); + let __v_3063: G = G::from_u64(0); + if (__v_3062 != __v_3063) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3062.as_canonical_u64(), rhs: __v_3063.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3064: G = if unconstrained { Bytes2::xor(&__v_2623, &__v_3052) } else { bytes2_xor_value(__v_2623, __v_3052, record) }; + let __v_3065: G = if unconstrained { Bytes2::xor(&__v_2624, &__v_3053) } else { bytes2_xor_value(__v_2624, __v_3053, record) }; + let __v_3066: G = if unconstrained { Bytes2::xor(&__v_2625, &__v_3054) } else { bytes2_xor_value(__v_2625, __v_3054, record) }; + let __v_3067: G = if unconstrained { Bytes2::xor(&__v_2622, &__v_3055) } else { bytes2_xor_value(__v_2622, __v_3055, record) }; + let __u32_sum: u128 = u128::from(((__v_2694.as_canonical_u64() << 0) | (__v_2695.as_canonical_u64() << 8) | (__v_2696.as_canonical_u64() << 16) | (__v_2697.as_canonical_u64() << 24))) + u128::from(((__v_3066.as_canonical_u64() << 0) | (__v_3067.as_canonical_u64() << 8) | (__v_3064.as_canonical_u64() << 16) | (__v_3065.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3068: G = G::from_u8(__u32_bytes[0]); + let __v_3069: G = G::from_u8(__u32_bytes[1]); + let __v_3070: G = G::from_u8(__u32_bytes[2]); + let __v_3071: G = G::from_u8(__u32_bytes[3]); + let __v_3072: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3068; let __vj = __v_3069; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3070; let __vj = __v_3071; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3073: G = (__v_3072 * __v_3072); + if (__v_3073 != __v_3072) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3073.as_canonical_u64(), rhs: __v_3072.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2776, &__v_3068) } else { bytes2_xor_split4_value(__v_2776, __v_3068, record) }; + let __v_3074: G = __b2_out.0; + let __v_3075: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2777, &__v_3069) } else { bytes2_xor_split4_value(__v_2777, __v_3069, record) }; + let __v_3076: G = __b2_out.0; + let __v_3077: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2778, &__v_3070) } else { bytes2_xor_split4_value(__v_2778, __v_3070, record) }; + let __v_3078: G = __b2_out.0; + let __v_3079: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2779, &__v_3071) } else { bytes2_xor_split4_value(__v_2779, __v_3071, record) }; + let __v_3080: G = __b2_out.0; + let __v_3081: G = __b2_out.1; + let __v_3082: G = (__v_3076 + __v_3079); + let __v_3083: G = (__v_3078 + __v_3081); + let __v_3084: G = (__v_3080 + __v_3075); + let __v_3085: G = (__v_3074 + __v_3077); + let __u32_sum: u128 = u128::from(((__v_3052.as_canonical_u64() << 0) | (__v_3053.as_canonical_u64() << 8) | (__v_3054.as_canonical_u64() << 16) | (__v_3055.as_canonical_u64() << 24))) + u128::from(((__v_3082.as_canonical_u64() << 0) | (__v_3083.as_canonical_u64() << 8) | (__v_3084.as_canonical_u64() << 16) | (__v_3085.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3086: G = G::from_u8(__u32_bytes[0]); + let __v_3087: G = G::from_u8(__u32_bytes[1]); + let __v_3088: G = G::from_u8(__u32_bytes[2]); + let __v_3089: G = G::from_u8(__u32_bytes[3]); + let __v_3090: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3086; let __vj = __v_3087; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3088; let __vj = __v_3089; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3091: G = G::from_u64(1); + let __v_3092: G = (__v_3090 - __v_3091); + let __v_3093: G = G::from_u64(2); + let __v_3094: G = (__v_3090 - __v_3093); + let __v_3095: G = (__v_3092 * __v_3094); + let __v_3096: G = (__v_3090 * __v_3095); + let __v_3097: G = G::from_u64(0); + if (__v_3096 != __v_3097) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3096.as_canonical_u64(), rhs: __v_3097.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3098: G = if unconstrained { Bytes2::xor(&__v_3066, &__v_3086) } else { bytes2_xor_value(__v_3066, __v_3086, record) }; + let __v_3099: G = if unconstrained { Bytes2::xor(&__v_3067, &__v_3087) } else { bytes2_xor_value(__v_3067, __v_3087, record) }; + let __v_3100: G = if unconstrained { Bytes2::xor(&__v_3064, &__v_3088) } else { bytes2_xor_value(__v_3064, __v_3088, record) }; + let __v_3101: G = if unconstrained { Bytes2::xor(&__v_3065, &__v_3089) } else { bytes2_xor_value(__v_3065, __v_3089, record) }; + let __u32_sum: u128 = u128::from(((__v_3068.as_canonical_u64() << 0) | (__v_3069.as_canonical_u64() << 8) | (__v_3070.as_canonical_u64() << 16) | (__v_3071.as_canonical_u64() << 24))) + u128::from(((__v_3099.as_canonical_u64() << 0) | (__v_3100.as_canonical_u64() << 8) | (__v_3101.as_canonical_u64() << 16) | (__v_3098.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3102: G = G::from_u8(__u32_bytes[0]); + let __v_3103: G = G::from_u8(__u32_bytes[1]); + let __v_3104: G = G::from_u8(__u32_bytes[2]); + let __v_3105: G = G::from_u8(__u32_bytes[3]); + let __v_3106: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3102; let __vj = __v_3103; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3104; let __vj = __v_3105; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3107: G = (__v_3106 * __v_3106); + if (__v_3107 != __v_3106) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3107.as_canonical_u64(), rhs: __v_3106.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3082, &__v_3102) } else { bytes2_xor_split7_value(__v_3082, __v_3102, record) }; + let __v_3108: G = __b2_out.0; + let __v_3109: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3083, &__v_3103) } else { bytes2_xor_split7_value(__v_3083, __v_3103, record) }; + let __v_3110: G = __b2_out.0; + let __v_3111: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3084, &__v_3104) } else { bytes2_xor_split7_value(__v_3084, __v_3104, record) }; + let __v_3112: G = __b2_out.0; + let __v_3113: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3085, &__v_3105) } else { bytes2_xor_split7_value(__v_3085, __v_3105, record) }; + let __v_3114: G = __b2_out.0; + let __v_3115: G = __b2_out.1; + let __v_3116: G = (__v_3108 + __v_3111); + let __v_3117: G = (__v_3110 + __v_3113); + let __v_3118: G = (__v_3112 + __v_3115); + let __v_3119: G = (__v_3114 + __v_3109); + let __u32_sum: u128 = u128::from(((__v_2882.as_canonical_u64() << 0) | (__v_2883.as_canonical_u64() << 8) | (__v_2884.as_canonical_u64() << 16) | (__v_2885.as_canonical_u64() << 24))) + u128::from(((__v_2980.as_canonical_u64() << 0) | (__v_2981.as_canonical_u64() << 8) | (__v_2982.as_canonical_u64() << 16) | (__v_2983.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3120: G = G::from_u8(__u32_bytes[0]); + let __v_3121: G = G::from_u8(__u32_bytes[1]); + let __v_3122: G = G::from_u8(__u32_bytes[2]); + let __v_3123: G = G::from_u8(__u32_bytes[3]); + let __v_3124: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3120; let __vj = __v_3121; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3122; let __vj = __v_3123; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3125: G = G::from_u64(1); + let __v_3126: G = (__v_3124 - __v_3125); + let __v_3127: G = G::from_u64(2); + let __v_3128: G = (__v_3124 - __v_3127); + let __v_3129: G = (__v_3126 * __v_3128); + let __v_3130: G = (__v_3124 * __v_3129); + let __v_3131: G = G::from_u64(0); + if (__v_3130 != __v_3131) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3130.as_canonical_u64(), rhs: __v_3131.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3132: G = if unconstrained { Bytes2::xor(&__v_3099, &__v_3120) } else { bytes2_xor_value(__v_3099, __v_3120, record) }; + let __v_3133: G = if unconstrained { Bytes2::xor(&__v_3100, &__v_3121) } else { bytes2_xor_value(__v_3100, __v_3121, record) }; + let __v_3134: G = if unconstrained { Bytes2::xor(&__v_3101, &__v_3122) } else { bytes2_xor_value(__v_3101, __v_3122, record) }; + let __v_3135: G = if unconstrained { Bytes2::xor(&__v_3098, &__v_3123) } else { bytes2_xor_value(__v_3098, __v_3123, record) }; + let __u32_sum: u128 = u128::from(((__v_3034.as_canonical_u64() << 0) | (__v_3035.as_canonical_u64() << 8) | (__v_3036.as_canonical_u64() << 16) | (__v_3037.as_canonical_u64() << 24))) + u128::from(((__v_3134.as_canonical_u64() << 0) | (__v_3135.as_canonical_u64() << 8) | (__v_3132.as_canonical_u64() << 16) | (__v_3133.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3136: G = G::from_u8(__u32_bytes[0]); + let __v_3137: G = G::from_u8(__u32_bytes[1]); + let __v_3138: G = G::from_u8(__u32_bytes[2]); + let __v_3139: G = G::from_u8(__u32_bytes[3]); + let __v_3140: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3136; let __vj = __v_3137; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3138; let __vj = __v_3139; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3141: G = (__v_3140 * __v_3140); + if (__v_3141 != __v_3140) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3141.as_canonical_u64(), rhs: __v_3140.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2980, &__v_3136) } else { bytes2_xor_split4_value(__v_2980, __v_3136, record) }; + let __v_3142: G = __b2_out.0; + let __v_3143: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2981, &__v_3137) } else { bytes2_xor_split4_value(__v_2981, __v_3137, record) }; + let __v_3144: G = __b2_out.0; + let __v_3145: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2982, &__v_3138) } else { bytes2_xor_split4_value(__v_2982, __v_3138, record) }; + let __v_3146: G = __b2_out.0; + let __v_3147: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2983, &__v_3139) } else { bytes2_xor_split4_value(__v_2983, __v_3139, record) }; + let __v_3148: G = __b2_out.0; + let __v_3149: G = __b2_out.1; + let __v_3150: G = (__v_3144 + __v_3147); + let __v_3151: G = (__v_3146 + __v_3149); + let __v_3152: G = (__v_3148 + __v_3143); + let __v_3153: G = (__v_3142 + __v_3145); + let __u32_sum: u128 = u128::from(((__v_3120.as_canonical_u64() << 0) | (__v_3121.as_canonical_u64() << 8) | (__v_3122.as_canonical_u64() << 16) | (__v_3123.as_canonical_u64() << 24))) + u128::from(((__v_3150.as_canonical_u64() << 0) | (__v_3151.as_canonical_u64() << 8) | (__v_3152.as_canonical_u64() << 16) | (__v_3153.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3154: G = G::from_u8(__u32_bytes[0]); + let __v_3155: G = G::from_u8(__u32_bytes[1]); + let __v_3156: G = G::from_u8(__u32_bytes[2]); + let __v_3157: G = G::from_u8(__u32_bytes[3]); + let __v_3158: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3154; let __vj = __v_3155; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3156; let __vj = __v_3157; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3159: G = G::from_u64(1); + let __v_3160: G = (__v_3158 - __v_3159); + let __v_3161: G = G::from_u64(2); + let __v_3162: G = (__v_3158 - __v_3161); + let __v_3163: G = (__v_3160 * __v_3162); + let __v_3164: G = (__v_3158 * __v_3163); + let __v_3165: G = G::from_u64(0); + if (__v_3164 != __v_3165) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3164.as_canonical_u64(), rhs: __v_3165.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3166: G = if unconstrained { Bytes2::xor(&__v_3134, &__v_3154) } else { bytes2_xor_value(__v_3134, __v_3154, record) }; + let __v_3167: G = if unconstrained { Bytes2::xor(&__v_3135, &__v_3155) } else { bytes2_xor_value(__v_3135, __v_3155, record) }; + let __v_3168: G = if unconstrained { Bytes2::xor(&__v_3132, &__v_3156) } else { bytes2_xor_value(__v_3132, __v_3156, record) }; + let __v_3169: G = if unconstrained { Bytes2::xor(&__v_3133, &__v_3157) } else { bytes2_xor_value(__v_3133, __v_3157, record) }; + let __u32_sum: u128 = u128::from(((__v_3136.as_canonical_u64() << 0) | (__v_3137.as_canonical_u64() << 8) | (__v_3138.as_canonical_u64() << 16) | (__v_3139.as_canonical_u64() << 24))) + u128::from(((__v_3167.as_canonical_u64() << 0) | (__v_3168.as_canonical_u64() << 8) | (__v_3169.as_canonical_u64() << 16) | (__v_3166.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3170: G = G::from_u8(__u32_bytes[0]); + let __v_3171: G = G::from_u8(__u32_bytes[1]); + let __v_3172: G = G::from_u8(__u32_bytes[2]); + let __v_3173: G = G::from_u8(__u32_bytes[3]); + let __v_3174: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3170; let __vj = __v_3171; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3172; let __vj = __v_3173; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3175: G = (__v_3174 * __v_3174); + if (__v_3175 != __v_3174) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3175.as_canonical_u64(), rhs: __v_3174.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3150, &__v_3170) } else { bytes2_xor_split7_value(__v_3150, __v_3170, record) }; + let __v_3176: G = __b2_out.0; + let __v_3177: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3151, &__v_3171) } else { bytes2_xor_split7_value(__v_3151, __v_3171, record) }; + let __v_3178: G = __b2_out.0; + let __v_3179: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3152, &__v_3172) } else { bytes2_xor_split7_value(__v_3152, __v_3172, record) }; + let __v_3180: G = __b2_out.0; + let __v_3181: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3153, &__v_3173) } else { bytes2_xor_split7_value(__v_3153, __v_3173, record) }; + let __v_3182: G = __b2_out.0; + let __v_3183: G = __b2_out.1; + let __v_3184: G = (__v_3176 + __v_3179); + let __v_3185: G = (__v_3178 + __v_3181); + let __v_3186: G = (__v_3180 + __v_3183); + let __v_3187: G = (__v_3182 + __v_3177); + let __u32_sum: u128 = u128::from(((__v_2950.as_canonical_u64() << 0) | (__v_2951.as_canonical_u64() << 8) | (__v_2952.as_canonical_u64() << 16) | (__v_2953.as_canonical_u64() << 24))) + u128::from(((__v_3048.as_canonical_u64() << 0) | (__v_3049.as_canonical_u64() << 8) | (__v_3050.as_canonical_u64() << 16) | (__v_3051.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3188: G = G::from_u8(__u32_bytes[0]); + let __v_3189: G = G::from_u8(__u32_bytes[1]); + let __v_3190: G = G::from_u8(__u32_bytes[2]); + let __v_3191: G = G::from_u8(__u32_bytes[3]); + let __v_3192: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3188; let __vj = __v_3189; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3190; let __vj = __v_3191; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3193: G = G::from_u64(1); + let __v_3194: G = (__v_3192 - __v_3193); + let __v_3195: G = G::from_u64(2); + let __v_3196: G = (__v_3192 - __v_3195); + let __v_3197: G = (__v_3194 * __v_3196); + let __v_3198: G = (__v_3192 * __v_3197); + let __v_3199: G = G::from_u64(0); + if (__v_3198 != __v_3199) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3198.as_canonical_u64(), rhs: __v_3199.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3200: G = if unconstrained { Bytes2::xor(&__v_2895, &__v_3188) } else { bytes2_xor_value(__v_2895, __v_3188, record) }; + let __v_3201: G = if unconstrained { Bytes2::xor(&__v_2896, &__v_3189) } else { bytes2_xor_value(__v_2896, __v_3189, record) }; + let __v_3202: G = if unconstrained { Bytes2::xor(&__v_2897, &__v_3190) } else { bytes2_xor_value(__v_2897, __v_3190, record) }; + let __v_3203: G = if unconstrained { Bytes2::xor(&__v_2894, &__v_3191) } else { bytes2_xor_value(__v_2894, __v_3191, record) }; + let __u32_sum: u128 = u128::from(((__v_3102.as_canonical_u64() << 0) | (__v_3103.as_canonical_u64() << 8) | (__v_3104.as_canonical_u64() << 16) | (__v_3105.as_canonical_u64() << 24))) + u128::from(((__v_3202.as_canonical_u64() << 0) | (__v_3203.as_canonical_u64() << 8) | (__v_3200.as_canonical_u64() << 16) | (__v_3201.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3204: G = G::from_u8(__u32_bytes[0]); + let __v_3205: G = G::from_u8(__u32_bytes[1]); + let __v_3206: G = G::from_u8(__u32_bytes[2]); + let __v_3207: G = G::from_u8(__u32_bytes[3]); + let __v_3208: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3204; let __vj = __v_3205; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3206; let __vj = __v_3207; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3209: G = (__v_3208 * __v_3208); + if (__v_3209 != __v_3208) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3209.as_canonical_u64(), rhs: __v_3208.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3048, &__v_3204) } else { bytes2_xor_split4_value(__v_3048, __v_3204, record) }; + let __v_3210: G = __b2_out.0; + let __v_3211: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3049, &__v_3205) } else { bytes2_xor_split4_value(__v_3049, __v_3205, record) }; + let __v_3212: G = __b2_out.0; + let __v_3213: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3050, &__v_3206) } else { bytes2_xor_split4_value(__v_3050, __v_3206, record) }; + let __v_3214: G = __b2_out.0; + let __v_3215: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3051, &__v_3207) } else { bytes2_xor_split4_value(__v_3051, __v_3207, record) }; + let __v_3216: G = __b2_out.0; + let __v_3217: G = __b2_out.1; + let __v_3218: G = (__v_3212 + __v_3215); + let __v_3219: G = (__v_3214 + __v_3217); + let __v_3220: G = (__v_3216 + __v_3211); + let __v_3221: G = (__v_3210 + __v_3213); + let __u32_sum: u128 = u128::from(((__v_3188.as_canonical_u64() << 0) | (__v_3189.as_canonical_u64() << 8) | (__v_3190.as_canonical_u64() << 16) | (__v_3191.as_canonical_u64() << 24))) + u128::from(((__v_3218.as_canonical_u64() << 0) | (__v_3219.as_canonical_u64() << 8) | (__v_3220.as_canonical_u64() << 16) | (__v_3221.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3222: G = G::from_u8(__u32_bytes[0]); + let __v_3223: G = G::from_u8(__u32_bytes[1]); + let __v_3224: G = G::from_u8(__u32_bytes[2]); + let __v_3225: G = G::from_u8(__u32_bytes[3]); + let __v_3226: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3222; let __vj = __v_3223; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3224; let __vj = __v_3225; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3227: G = G::from_u64(1); + let __v_3228: G = (__v_3226 - __v_3227); + let __v_3229: G = G::from_u64(2); + let __v_3230: G = (__v_3226 - __v_3229); + let __v_3231: G = (__v_3228 * __v_3230); + let __v_3232: G = (__v_3226 * __v_3231); + let __v_3233: G = G::from_u64(0); + if (__v_3232 != __v_3233) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3232.as_canonical_u64(), rhs: __v_3233.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3234: G = if unconstrained { Bytes2::xor(&__v_3202, &__v_3222) } else { bytes2_xor_value(__v_3202, __v_3222, record) }; + let __v_3235: G = if unconstrained { Bytes2::xor(&__v_3203, &__v_3223) } else { bytes2_xor_value(__v_3203, __v_3223, record) }; + let __v_3236: G = if unconstrained { Bytes2::xor(&__v_3200, &__v_3224) } else { bytes2_xor_value(__v_3200, __v_3224, record) }; + let __v_3237: G = if unconstrained { Bytes2::xor(&__v_3201, &__v_3225) } else { bytes2_xor_value(__v_3201, __v_3225, record) }; + let __u32_sum: u128 = u128::from(((__v_3204.as_canonical_u64() << 0) | (__v_3205.as_canonical_u64() << 8) | (__v_3206.as_canonical_u64() << 16) | (__v_3207.as_canonical_u64() << 24))) + u128::from(((__v_3235.as_canonical_u64() << 0) | (__v_3236.as_canonical_u64() << 8) | (__v_3237.as_canonical_u64() << 16) | (__v_3234.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3238: G = G::from_u8(__u32_bytes[0]); + let __v_3239: G = G::from_u8(__u32_bytes[1]); + let __v_3240: G = G::from_u8(__u32_bytes[2]); + let __v_3241: G = G::from_u8(__u32_bytes[3]); + let __v_3242: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3238; let __vj = __v_3239; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3240; let __vj = __v_3241; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3243: G = (__v_3242 * __v_3242); + if (__v_3243 != __v_3242) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3243.as_canonical_u64(), rhs: __v_3242.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3218, &__v_3238) } else { bytes2_xor_split7_value(__v_3218, __v_3238, record) }; + let __v_3244: G = __b2_out.0; + let __v_3245: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3219, &__v_3239) } else { bytes2_xor_split7_value(__v_3219, __v_3239, record) }; + let __v_3246: G = __b2_out.0; + let __v_3247: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3220, &__v_3240) } else { bytes2_xor_split7_value(__v_3220, __v_3240, record) }; + let __v_3248: G = __b2_out.0; + let __v_3249: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3221, &__v_3241) } else { bytes2_xor_split7_value(__v_3221, __v_3241, record) }; + let __v_3250: G = __b2_out.0; + let __v_3251: G = __b2_out.1; + let __v_3252: G = (__v_3244 + __v_3247); + let __v_3253: G = (__v_3246 + __v_3249); + let __v_3254: G = (__v_3248 + __v_3251); + let __v_3255: G = (__v_3250 + __v_3245); + let __u32_sum: u128 = u128::from(((__v_3018.as_canonical_u64() << 0) | (__v_3019.as_canonical_u64() << 8) | (__v_3020.as_canonical_u64() << 16) | (__v_3021.as_canonical_u64() << 24))) + u128::from(((__v_3116.as_canonical_u64() << 0) | (__v_3117.as_canonical_u64() << 8) | (__v_3118.as_canonical_u64() << 16) | (__v_3119.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3256: G = G::from_u8(__u32_bytes[0]); + let __v_3257: G = G::from_u8(__u32_bytes[1]); + let __v_3258: G = G::from_u8(__u32_bytes[2]); + let __v_3259: G = G::from_u8(__u32_bytes[3]); + let __v_3260: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3256; let __vj = __v_3257; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3258; let __vj = __v_3259; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3261: G = G::from_u64(1); + let __v_3262: G = (__v_3260 - __v_3261); + let __v_3263: G = G::from_u64(2); + let __v_3264: G = (__v_3260 - __v_3263); + let __v_3265: G = (__v_3262 * __v_3264); + let __v_3266: G = (__v_3260 * __v_3265); + let __v_3267: G = G::from_u64(0); + if (__v_3266 != __v_3267) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3266.as_canonical_u64(), rhs: __v_3267.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3268: G = if unconstrained { Bytes2::xor(&__v_2963, &__v_3256) } else { bytes2_xor_value(__v_2963, __v_3256, record) }; + let __v_3269: G = if unconstrained { Bytes2::xor(&__v_2964, &__v_3257) } else { bytes2_xor_value(__v_2964, __v_3257, record) }; + let __v_3270: G = if unconstrained { Bytes2::xor(&__v_2965, &__v_3258) } else { bytes2_xor_value(__v_2965, __v_3258, record) }; + let __v_3271: G = if unconstrained { Bytes2::xor(&__v_2962, &__v_3259) } else { bytes2_xor_value(__v_2962, __v_3259, record) }; + let __u32_sum: u128 = u128::from(((__v_2898.as_canonical_u64() << 0) | (__v_2899.as_canonical_u64() << 8) | (__v_2900.as_canonical_u64() << 16) | (__v_2901.as_canonical_u64() << 24))) + u128::from(((__v_3270.as_canonical_u64() << 0) | (__v_3271.as_canonical_u64() << 8) | (__v_3268.as_canonical_u64() << 16) | (__v_3269.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3272: G = G::from_u8(__u32_bytes[0]); + let __v_3273: G = G::from_u8(__u32_bytes[1]); + let __v_3274: G = G::from_u8(__u32_bytes[2]); + let __v_3275: G = G::from_u8(__u32_bytes[3]); + let __v_3276: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3272; let __vj = __v_3273; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3274; let __vj = __v_3275; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3277: G = (__v_3276 * __v_3276); + if (__v_3277 != __v_3276) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3277.as_canonical_u64(), rhs: __v_3276.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3116, &__v_3272) } else { bytes2_xor_split4_value(__v_3116, __v_3272, record) }; + let __v_3278: G = __b2_out.0; + let __v_3279: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3117, &__v_3273) } else { bytes2_xor_split4_value(__v_3117, __v_3273, record) }; + let __v_3280: G = __b2_out.0; + let __v_3281: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3118, &__v_3274) } else { bytes2_xor_split4_value(__v_3118, __v_3274, record) }; + let __v_3282: G = __b2_out.0; + let __v_3283: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3119, &__v_3275) } else { bytes2_xor_split4_value(__v_3119, __v_3275, record) }; + let __v_3284: G = __b2_out.0; + let __v_3285: G = __b2_out.1; + let __v_3286: G = (__v_3280 + __v_3283); + let __v_3287: G = (__v_3282 + __v_3285); + let __v_3288: G = (__v_3284 + __v_3279); + let __v_3289: G = (__v_3278 + __v_3281); + let __u32_sum: u128 = u128::from(((__v_3256.as_canonical_u64() << 0) | (__v_3257.as_canonical_u64() << 8) | (__v_3258.as_canonical_u64() << 16) | (__v_3259.as_canonical_u64() << 24))) + u128::from(((__v_3286.as_canonical_u64() << 0) | (__v_3287.as_canonical_u64() << 8) | (__v_3288.as_canonical_u64() << 16) | (__v_3289.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3290: G = G::from_u8(__u32_bytes[0]); + let __v_3291: G = G::from_u8(__u32_bytes[1]); + let __v_3292: G = G::from_u8(__u32_bytes[2]); + let __v_3293: G = G::from_u8(__u32_bytes[3]); + let __v_3294: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3290; let __vj = __v_3291; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3292; let __vj = __v_3293; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3295: G = G::from_u64(1); + let __v_3296: G = (__v_3294 - __v_3295); + let __v_3297: G = G::from_u64(2); + let __v_3298: G = (__v_3294 - __v_3297); + let __v_3299: G = (__v_3296 * __v_3298); + let __v_3300: G = (__v_3294 * __v_3299); + let __v_3301: G = G::from_u64(0); + if (__v_3300 != __v_3301) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3300.as_canonical_u64(), rhs: __v_3301.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3302: G = if unconstrained { Bytes2::xor(&__v_3270, &__v_3290) } else { bytes2_xor_value(__v_3270, __v_3290, record) }; + let __v_3303: G = if unconstrained { Bytes2::xor(&__v_3271, &__v_3291) } else { bytes2_xor_value(__v_3271, __v_3291, record) }; + let __v_3304: G = if unconstrained { Bytes2::xor(&__v_3268, &__v_3292) } else { bytes2_xor_value(__v_3268, __v_3292, record) }; + let __v_3305: G = if unconstrained { Bytes2::xor(&__v_3269, &__v_3293) } else { bytes2_xor_value(__v_3269, __v_3293, record) }; + let __u32_sum: u128 = u128::from(((__v_3272.as_canonical_u64() << 0) | (__v_3273.as_canonical_u64() << 8) | (__v_3274.as_canonical_u64() << 16) | (__v_3275.as_canonical_u64() << 24))) + u128::from(((__v_3303.as_canonical_u64() << 0) | (__v_3304.as_canonical_u64() << 8) | (__v_3305.as_canonical_u64() << 16) | (__v_3302.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3306: G = G::from_u8(__u32_bytes[0]); + let __v_3307: G = G::from_u8(__u32_bytes[1]); + let __v_3308: G = G::from_u8(__u32_bytes[2]); + let __v_3309: G = G::from_u8(__u32_bytes[3]); + let __v_3310: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3306; let __vj = __v_3307; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3308; let __vj = __v_3309; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3311: G = (__v_3310 * __v_3310); + if (__v_3311 != __v_3310) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3311.as_canonical_u64(), rhs: __v_3310.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3286, &__v_3306) } else { bytes2_xor_split7_value(__v_3286, __v_3306, record) }; + let __v_3312: G = __b2_out.0; + let __v_3313: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3287, &__v_3307) } else { bytes2_xor_split7_value(__v_3287, __v_3307, record) }; + let __v_3314: G = __b2_out.0; + let __v_3315: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3288, &__v_3308) } else { bytes2_xor_split7_value(__v_3288, __v_3308, record) }; + let __v_3316: G = __b2_out.0; + let __v_3317: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3289, &__v_3309) } else { bytes2_xor_split7_value(__v_3289, __v_3309, record) }; + let __v_3318: G = __b2_out.0; + let __v_3319: G = __b2_out.1; + let __v_3320: G = (__v_3312 + __v_3315); + let __v_3321: G = (__v_3314 + __v_3317); + let __v_3322: G = (__v_3316 + __v_3319); + let __v_3323: G = (__v_3318 + __v_3313); + let __u32_sum: u128 = u128::from(((__v_3086.as_canonical_u64() << 0) | (__v_3087.as_canonical_u64() << 8) | (__v_3088.as_canonical_u64() << 16) | (__v_3089.as_canonical_u64() << 24))) + u128::from(((__v_2912.as_canonical_u64() << 0) | (__v_2913.as_canonical_u64() << 8) | (__v_2914.as_canonical_u64() << 16) | (__v_2915.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3324: G = G::from_u8(__u32_bytes[0]); + let __v_3325: G = G::from_u8(__u32_bytes[1]); + let __v_3326: G = G::from_u8(__u32_bytes[2]); + let __v_3327: G = G::from_u8(__u32_bytes[3]); + let __v_3328: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3324; let __vj = __v_3325; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3326; let __vj = __v_3327; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3329: G = G::from_u64(1); + let __v_3330: G = (__v_3328 - __v_3329); + let __v_3331: G = G::from_u64(2); + let __v_3332: G = (__v_3328 - __v_3331); + let __v_3333: G = (__v_3330 * __v_3332); + let __v_3334: G = (__v_3328 * __v_3333); + let __v_3335: G = G::from_u64(0); + if (__v_3334 != __v_3335) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3334.as_canonical_u64(), rhs: __v_3335.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3336: G = if unconstrained { Bytes2::xor(&__v_3031, &__v_3324) } else { bytes2_xor_value(__v_3031, __v_3324, record) }; + let __v_3337: G = if unconstrained { Bytes2::xor(&__v_3032, &__v_3325) } else { bytes2_xor_value(__v_3032, __v_3325, record) }; + let __v_3338: G = if unconstrained { Bytes2::xor(&__v_3033, &__v_3326) } else { bytes2_xor_value(__v_3033, __v_3326, record) }; + let __v_3339: G = if unconstrained { Bytes2::xor(&__v_3030, &__v_3327) } else { bytes2_xor_value(__v_3030, __v_3327, record) }; + let __u32_sum: u128 = u128::from(((__v_2966.as_canonical_u64() << 0) | (__v_2967.as_canonical_u64() << 8) | (__v_2968.as_canonical_u64() << 16) | (__v_2969.as_canonical_u64() << 24))) + u128::from(((__v_3338.as_canonical_u64() << 0) | (__v_3339.as_canonical_u64() << 8) | (__v_3336.as_canonical_u64() << 16) | (__v_3337.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3340: G = G::from_u8(__u32_bytes[0]); + let __v_3341: G = G::from_u8(__u32_bytes[1]); + let __v_3342: G = G::from_u8(__u32_bytes[2]); + let __v_3343: G = G::from_u8(__u32_bytes[3]); + let __v_3344: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3340; let __vj = __v_3341; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3342; let __vj = __v_3343; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3345: G = (__v_3344 * __v_3344); + if (__v_3345 != __v_3344) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3345.as_canonical_u64(), rhs: __v_3344.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2912, &__v_3340) } else { bytes2_xor_split4_value(__v_2912, __v_3340, record) }; + let __v_3346: G = __b2_out.0; + let __v_3347: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2913, &__v_3341) } else { bytes2_xor_split4_value(__v_2913, __v_3341, record) }; + let __v_3348: G = __b2_out.0; + let __v_3349: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2914, &__v_3342) } else { bytes2_xor_split4_value(__v_2914, __v_3342, record) }; + let __v_3350: G = __b2_out.0; + let __v_3351: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_2915, &__v_3343) } else { bytes2_xor_split4_value(__v_2915, __v_3343, record) }; + let __v_3352: G = __b2_out.0; + let __v_3353: G = __b2_out.1; + let __v_3354: G = (__v_3348 + __v_3351); + let __v_3355: G = (__v_3350 + __v_3353); + let __v_3356: G = (__v_3352 + __v_3347); + let __v_3357: G = (__v_3346 + __v_3349); + let __u32_sum: u128 = u128::from(((__v_3324.as_canonical_u64() << 0) | (__v_3325.as_canonical_u64() << 8) | (__v_3326.as_canonical_u64() << 16) | (__v_3327.as_canonical_u64() << 24))) + u128::from(((__v_3354.as_canonical_u64() << 0) | (__v_3355.as_canonical_u64() << 8) | (__v_3356.as_canonical_u64() << 16) | (__v_3357.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3358: G = G::from_u8(__u32_bytes[0]); + let __v_3359: G = G::from_u8(__u32_bytes[1]); + let __v_3360: G = G::from_u8(__u32_bytes[2]); + let __v_3361: G = G::from_u8(__u32_bytes[3]); + let __v_3362: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3358; let __vj = __v_3359; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3360; let __vj = __v_3361; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3363: G = G::from_u64(1); + let __v_3364: G = (__v_3362 - __v_3363); + let __v_3365: G = G::from_u64(2); + let __v_3366: G = (__v_3362 - __v_3365); + let __v_3367: G = (__v_3364 * __v_3366); + let __v_3368: G = (__v_3362 * __v_3367); + let __v_3369: G = G::from_u64(0); + if (__v_3368 != __v_3369) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3368.as_canonical_u64(), rhs: __v_3369.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3370: G = if unconstrained { Bytes2::xor(&__v_3338, &__v_3358) } else { bytes2_xor_value(__v_3338, __v_3358, record) }; + let __v_3371: G = if unconstrained { Bytes2::xor(&__v_3339, &__v_3359) } else { bytes2_xor_value(__v_3339, __v_3359, record) }; + let __v_3372: G = if unconstrained { Bytes2::xor(&__v_3336, &__v_3360) } else { bytes2_xor_value(__v_3336, __v_3360, record) }; + let __v_3373: G = if unconstrained { Bytes2::xor(&__v_3337, &__v_3361) } else { bytes2_xor_value(__v_3337, __v_3361, record) }; + let __u32_sum: u128 = u128::from(((__v_3340.as_canonical_u64() << 0) | (__v_3341.as_canonical_u64() << 8) | (__v_3342.as_canonical_u64() << 16) | (__v_3343.as_canonical_u64() << 24))) + u128::from(((__v_3371.as_canonical_u64() << 0) | (__v_3372.as_canonical_u64() << 8) | (__v_3373.as_canonical_u64() << 16) | (__v_3370.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3374: G = G::from_u8(__u32_bytes[0]); + let __v_3375: G = G::from_u8(__u32_bytes[1]); + let __v_3376: G = G::from_u8(__u32_bytes[2]); + let __v_3377: G = G::from_u8(__u32_bytes[3]); + let __v_3378: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3374; let __vj = __v_3375; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3376; let __vj = __v_3377; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3379: G = (__v_3378 * __v_3378); + if (__v_3379 != __v_3378) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3379.as_canonical_u64(), rhs: __v_3378.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3354, &__v_3374) } else { bytes2_xor_split7_value(__v_3354, __v_3374, record) }; + let __v_3380: G = __b2_out.0; + let __v_3381: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3355, &__v_3375) } else { bytes2_xor_split7_value(__v_3355, __v_3375, record) }; + let __v_3382: G = __b2_out.0; + let __v_3383: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3356, &__v_3376) } else { bytes2_xor_split7_value(__v_3356, __v_3376, record) }; + let __v_3384: G = __b2_out.0; + let __v_3385: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3357, &__v_3377) } else { bytes2_xor_split7_value(__v_3357, __v_3377, record) }; + let __v_3386: G = __b2_out.0; + let __v_3387: G = __b2_out.1; + let __v_3388: G = (__v_3380 + __v_3383); + let __v_3389: G = (__v_3382 + __v_3385); + let __v_3390: G = (__v_3384 + __v_3387); + let __v_3391: G = (__v_3386 + __v_3381); + let __u32_sum: u128 = u128::from(((__v_3154.as_canonical_u64() << 0) | (__v_3155.as_canonical_u64() << 8) | (__v_3156.as_canonical_u64() << 16) | (__v_3157.as_canonical_u64() << 24))) + u128::from(((__v_3388.as_canonical_u64() << 0) | (__v_3389.as_canonical_u64() << 8) | (__v_3390.as_canonical_u64() << 16) | (__v_3391.as_canonical_u64() << 24))) + u128::from(((__v_76.as_canonical_u64() << 0) | (__v_77.as_canonical_u64() << 8) | (__v_78.as_canonical_u64() << 16) | (__v_79.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3392: G = G::from_u8(__u32_bytes[0]); + let __v_3393: G = G::from_u8(__u32_bytes[1]); + let __v_3394: G = G::from_u8(__u32_bytes[2]); + let __v_3395: G = G::from_u8(__u32_bytes[3]); + let __v_3396: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3392; let __vj = __v_3393; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3394; let __vj = __v_3395; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3397: G = G::from_u64(1); + let __v_3398: G = (__v_3396 - __v_3397); + let __v_3399: G = G::from_u64(2); + let __v_3400: G = (__v_3396 - __v_3399); + let __v_3401: G = (__v_3398 * __v_3400); + let __v_3402: G = (__v_3396 * __v_3401); + let __v_3403: G = G::from_u64(0); + if (__v_3402 != __v_3403) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3402.as_canonical_u64(), rhs: __v_3403.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3404: G = if unconstrained { Bytes2::xor(&__v_3235, &__v_3392) } else { bytes2_xor_value(__v_3235, __v_3392, record) }; + let __v_3405: G = if unconstrained { Bytes2::xor(&__v_3236, &__v_3393) } else { bytes2_xor_value(__v_3236, __v_3393, record) }; + let __v_3406: G = if unconstrained { Bytes2::xor(&__v_3237, &__v_3394) } else { bytes2_xor_value(__v_3237, __v_3394, record) }; + let __v_3407: G = if unconstrained { Bytes2::xor(&__v_3234, &__v_3395) } else { bytes2_xor_value(__v_3234, __v_3395, record) }; + let __u32_sum: u128 = u128::from(((__v_3306.as_canonical_u64() << 0) | (__v_3307.as_canonical_u64() << 8) | (__v_3308.as_canonical_u64() << 16) | (__v_3309.as_canonical_u64() << 24))) + u128::from(((__v_3406.as_canonical_u64() << 0) | (__v_3407.as_canonical_u64() << 8) | (__v_3404.as_canonical_u64() << 16) | (__v_3405.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3408: G = G::from_u8(__u32_bytes[0]); + let __v_3409: G = G::from_u8(__u32_bytes[1]); + let __v_3410: G = G::from_u8(__u32_bytes[2]); + let __v_3411: G = G::from_u8(__u32_bytes[3]); + let __v_3412: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3408; let __vj = __v_3409; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3410; let __vj = __v_3411; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3413: G = (__v_3412 * __v_3412); + if (__v_3413 != __v_3412) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3413.as_canonical_u64(), rhs: __v_3412.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3388, &__v_3408) } else { bytes2_xor_split4_value(__v_3388, __v_3408, record) }; + let __v_3414: G = __b2_out.0; + let __v_3415: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3389, &__v_3409) } else { bytes2_xor_split4_value(__v_3389, __v_3409, record) }; + let __v_3416: G = __b2_out.0; + let __v_3417: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3390, &__v_3410) } else { bytes2_xor_split4_value(__v_3390, __v_3410, record) }; + let __v_3418: G = __b2_out.0; + let __v_3419: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3391, &__v_3411) } else { bytes2_xor_split4_value(__v_3391, __v_3411, record) }; + let __v_3420: G = __b2_out.0; + let __v_3421: G = __b2_out.1; + let __v_3422: G = (__v_3416 + __v_3419); + let __v_3423: G = (__v_3418 + __v_3421); + let __v_3424: G = (__v_3420 + __v_3415); + let __v_3425: G = (__v_3414 + __v_3417); + let __u32_sum: u128 = u128::from(((__v_3392.as_canonical_u64() << 0) | (__v_3393.as_canonical_u64() << 8) | (__v_3394.as_canonical_u64() << 16) | (__v_3395.as_canonical_u64() << 24))) + u128::from(((__v_3422.as_canonical_u64() << 0) | (__v_3423.as_canonical_u64() << 8) | (__v_3424.as_canonical_u64() << 16) | (__v_3425.as_canonical_u64() << 24))) + u128::from(((__v_92.as_canonical_u64() << 0) | (__v_93.as_canonical_u64() << 8) | (__v_94.as_canonical_u64() << 16) | (__v_95.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3426: G = G::from_u8(__u32_bytes[0]); + let __v_3427: G = G::from_u8(__u32_bytes[1]); + let __v_3428: G = G::from_u8(__u32_bytes[2]); + let __v_3429: G = G::from_u8(__u32_bytes[3]); + let __v_3430: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3426; let __vj = __v_3427; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3428; let __vj = __v_3429; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3431: G = G::from_u64(1); + let __v_3432: G = (__v_3430 - __v_3431); + let __v_3433: G = G::from_u64(2); + let __v_3434: G = (__v_3430 - __v_3433); + let __v_3435: G = (__v_3432 * __v_3434); + let __v_3436: G = (__v_3430 * __v_3435); + let __v_3437: G = G::from_u64(0); + if (__v_3436 != __v_3437) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3436.as_canonical_u64(), rhs: __v_3437.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3438: G = if unconstrained { Bytes2::xor(&__v_3406, &__v_3426) } else { bytes2_xor_value(__v_3406, __v_3426, record) }; + let __v_3439: G = if unconstrained { Bytes2::xor(&__v_3407, &__v_3427) } else { bytes2_xor_value(__v_3407, __v_3427, record) }; + let __v_3440: G = if unconstrained { Bytes2::xor(&__v_3404, &__v_3428) } else { bytes2_xor_value(__v_3404, __v_3428, record) }; + let __v_3441: G = if unconstrained { Bytes2::xor(&__v_3405, &__v_3429) } else { bytes2_xor_value(__v_3405, __v_3429, record) }; + let __u32_sum: u128 = u128::from(((__v_3408.as_canonical_u64() << 0) | (__v_3409.as_canonical_u64() << 8) | (__v_3410.as_canonical_u64() << 16) | (__v_3411.as_canonical_u64() << 24))) + u128::from(((__v_3439.as_canonical_u64() << 0) | (__v_3440.as_canonical_u64() << 8) | (__v_3441.as_canonical_u64() << 16) | (__v_3438.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3442: G = G::from_u8(__u32_bytes[0]); + let __v_3443: G = G::from_u8(__u32_bytes[1]); + let __v_3444: G = G::from_u8(__u32_bytes[2]); + let __v_3445: G = G::from_u8(__u32_bytes[3]); + let __v_3446: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3442; let __vj = __v_3443; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3444; let __vj = __v_3445; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3447: G = (__v_3446 * __v_3446); + if (__v_3447 != __v_3446) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3447.as_canonical_u64(), rhs: __v_3446.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3422, &__v_3442) } else { bytes2_xor_split7_value(__v_3422, __v_3442, record) }; + let __v_3448: G = __b2_out.0; + let __v_3449: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3423, &__v_3443) } else { bytes2_xor_split7_value(__v_3423, __v_3443, record) }; + let __v_3450: G = __b2_out.0; + let __v_3451: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3424, &__v_3444) } else { bytes2_xor_split7_value(__v_3424, __v_3444, record) }; + let __v_3452: G = __b2_out.0; + let __v_3453: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3425, &__v_3445) } else { bytes2_xor_split7_value(__v_3425, __v_3445, record) }; + let __v_3454: G = __b2_out.0; + let __v_3455: G = __b2_out.1; + let __v_3456: G = (__v_3448 + __v_3451); + let __v_3457: G = (__v_3450 + __v_3453); + let __v_3458: G = (__v_3452 + __v_3455); + let __v_3459: G = (__v_3454 + __v_3449); + let __u32_sum: u128 = u128::from(((__v_3222.as_canonical_u64() << 0) | (__v_3223.as_canonical_u64() << 8) | (__v_3224.as_canonical_u64() << 16) | (__v_3225.as_canonical_u64() << 24))) + u128::from(((__v_3184.as_canonical_u64() << 0) | (__v_3185.as_canonical_u64() << 8) | (__v_3186.as_canonical_u64() << 16) | (__v_3187.as_canonical_u64() << 24))) + u128::from(((__v_52.as_canonical_u64() << 0) | (__v_53.as_canonical_u64() << 8) | (__v_54.as_canonical_u64() << 16) | (__v_55.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3460: G = G::from_u8(__u32_bytes[0]); + let __v_3461: G = G::from_u8(__u32_bytes[1]); + let __v_3462: G = G::from_u8(__u32_bytes[2]); + let __v_3463: G = G::from_u8(__u32_bytes[3]); + let __v_3464: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3460; let __vj = __v_3461; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3462; let __vj = __v_3463; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3465: G = G::from_u64(1); + let __v_3466: G = (__v_3464 - __v_3465); + let __v_3467: G = G::from_u64(2); + let __v_3468: G = (__v_3464 - __v_3467); + let __v_3469: G = (__v_3466 * __v_3468); + let __v_3470: G = (__v_3464 * __v_3469); + let __v_3471: G = G::from_u64(0); + if (__v_3470 != __v_3471) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3470.as_canonical_u64(), rhs: __v_3471.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3472: G = if unconstrained { Bytes2::xor(&__v_3303, &__v_3460) } else { bytes2_xor_value(__v_3303, __v_3460, record) }; + let __v_3473: G = if unconstrained { Bytes2::xor(&__v_3304, &__v_3461) } else { bytes2_xor_value(__v_3304, __v_3461, record) }; + let __v_3474: G = if unconstrained { Bytes2::xor(&__v_3305, &__v_3462) } else { bytes2_xor_value(__v_3305, __v_3462, record) }; + let __v_3475: G = if unconstrained { Bytes2::xor(&__v_3302, &__v_3463) } else { bytes2_xor_value(__v_3302, __v_3463, record) }; + let __u32_sum: u128 = u128::from(((__v_3374.as_canonical_u64() << 0) | (__v_3375.as_canonical_u64() << 8) | (__v_3376.as_canonical_u64() << 16) | (__v_3377.as_canonical_u64() << 24))) + u128::from(((__v_3474.as_canonical_u64() << 0) | (__v_3475.as_canonical_u64() << 8) | (__v_3472.as_canonical_u64() << 16) | (__v_3473.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3476: G = G::from_u8(__u32_bytes[0]); + let __v_3477: G = G::from_u8(__u32_bytes[1]); + let __v_3478: G = G::from_u8(__u32_bytes[2]); + let __v_3479: G = G::from_u8(__u32_bytes[3]); + let __v_3480: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3476; let __vj = __v_3477; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3478; let __vj = __v_3479; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3481: G = (__v_3480 * __v_3480); + if (__v_3481 != __v_3480) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3481.as_canonical_u64(), rhs: __v_3480.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3184, &__v_3476) } else { bytes2_xor_split4_value(__v_3184, __v_3476, record) }; + let __v_3482: G = __b2_out.0; + let __v_3483: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3185, &__v_3477) } else { bytes2_xor_split4_value(__v_3185, __v_3477, record) }; + let __v_3484: G = __b2_out.0; + let __v_3485: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3186, &__v_3478) } else { bytes2_xor_split4_value(__v_3186, __v_3478, record) }; + let __v_3486: G = __b2_out.0; + let __v_3487: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3187, &__v_3479) } else { bytes2_xor_split4_value(__v_3187, __v_3479, record) }; + let __v_3488: G = __b2_out.0; + let __v_3489: G = __b2_out.1; + let __v_3490: G = (__v_3484 + __v_3487); + let __v_3491: G = (__v_3486 + __v_3489); + let __v_3492: G = (__v_3488 + __v_3483); + let __v_3493: G = (__v_3482 + __v_3485); + let __u32_sum: u128 = u128::from(((__v_3460.as_canonical_u64() << 0) | (__v_3461.as_canonical_u64() << 8) | (__v_3462.as_canonical_u64() << 16) | (__v_3463.as_canonical_u64() << 24))) + u128::from(((__v_3490.as_canonical_u64() << 0) | (__v_3491.as_canonical_u64() << 8) | (__v_3492.as_canonical_u64() << 16) | (__v_3493.as_canonical_u64() << 24))) + u128::from(((__v_32.as_canonical_u64() << 0) | (__v_33.as_canonical_u64() << 8) | (__v_34.as_canonical_u64() << 16) | (__v_35.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3494: G = G::from_u8(__u32_bytes[0]); + let __v_3495: G = G::from_u8(__u32_bytes[1]); + let __v_3496: G = G::from_u8(__u32_bytes[2]); + let __v_3497: G = G::from_u8(__u32_bytes[3]); + let __v_3498: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3494; let __vj = __v_3495; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3496; let __vj = __v_3497; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3499: G = G::from_u64(1); + let __v_3500: G = (__v_3498 - __v_3499); + let __v_3501: G = G::from_u64(2); + let __v_3502: G = (__v_3498 - __v_3501); + let __v_3503: G = (__v_3500 * __v_3502); + let __v_3504: G = (__v_3498 * __v_3503); + let __v_3505: G = G::from_u64(0); + if (__v_3504 != __v_3505) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3504.as_canonical_u64(), rhs: __v_3505.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3506: G = if unconstrained { Bytes2::xor(&__v_3474, &__v_3494) } else { bytes2_xor_value(__v_3474, __v_3494, record) }; + let __v_3507: G = if unconstrained { Bytes2::xor(&__v_3475, &__v_3495) } else { bytes2_xor_value(__v_3475, __v_3495, record) }; + let __v_3508: G = if unconstrained { Bytes2::xor(&__v_3472, &__v_3496) } else { bytes2_xor_value(__v_3472, __v_3496, record) }; + let __v_3509: G = if unconstrained { Bytes2::xor(&__v_3473, &__v_3497) } else { bytes2_xor_value(__v_3473, __v_3497, record) }; + let __u32_sum: u128 = u128::from(((__v_3476.as_canonical_u64() << 0) | (__v_3477.as_canonical_u64() << 8) | (__v_3478.as_canonical_u64() << 16) | (__v_3479.as_canonical_u64() << 24))) + u128::from(((__v_3507.as_canonical_u64() << 0) | (__v_3508.as_canonical_u64() << 8) | (__v_3509.as_canonical_u64() << 16) | (__v_3506.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3510: G = G::from_u8(__u32_bytes[0]); + let __v_3511: G = G::from_u8(__u32_bytes[1]); + let __v_3512: G = G::from_u8(__u32_bytes[2]); + let __v_3513: G = G::from_u8(__u32_bytes[3]); + let __v_3514: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3510; let __vj = __v_3511; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3512; let __vj = __v_3513; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3515: G = (__v_3514 * __v_3514); + if (__v_3515 != __v_3514) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3515.as_canonical_u64(), rhs: __v_3514.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3490, &__v_3510) } else { bytes2_xor_split7_value(__v_3490, __v_3510, record) }; + let __v_3516: G = __b2_out.0; + let __v_3517: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3491, &__v_3511) } else { bytes2_xor_split7_value(__v_3491, __v_3511, record) }; + let __v_3518: G = __b2_out.0; + let __v_3519: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3492, &__v_3512) } else { bytes2_xor_split7_value(__v_3492, __v_3512, record) }; + let __v_3520: G = __b2_out.0; + let __v_3521: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3493, &__v_3513) } else { bytes2_xor_split7_value(__v_3493, __v_3513, record) }; + let __v_3522: G = __b2_out.0; + let __v_3523: G = __b2_out.1; + let __v_3524: G = (__v_3516 + __v_3519); + let __v_3525: G = (__v_3518 + __v_3521); + let __v_3526: G = (__v_3520 + __v_3523); + let __v_3527: G = (__v_3522 + __v_3517); + let __u32_sum: u128 = u128::from(((__v_3290.as_canonical_u64() << 0) | (__v_3291.as_canonical_u64() << 8) | (__v_3292.as_canonical_u64() << 16) | (__v_3293.as_canonical_u64() << 24))) + u128::from(((__v_3252.as_canonical_u64() << 0) | (__v_3253.as_canonical_u64() << 8) | (__v_3254.as_canonical_u64() << 16) | (__v_3255.as_canonical_u64() << 24))) + u128::from(((__v_36.as_canonical_u64() << 0) | (__v_37.as_canonical_u64() << 8) | (__v_38.as_canonical_u64() << 16) | (__v_39.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3528: G = G::from_u8(__u32_bytes[0]); + let __v_3529: G = G::from_u8(__u32_bytes[1]); + let __v_3530: G = G::from_u8(__u32_bytes[2]); + let __v_3531: G = G::from_u8(__u32_bytes[3]); + let __v_3532: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3528; let __vj = __v_3529; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3530; let __vj = __v_3531; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3533: G = G::from_u64(1); + let __v_3534: G = (__v_3532 - __v_3533); + let __v_3535: G = G::from_u64(2); + let __v_3536: G = (__v_3532 - __v_3535); + let __v_3537: G = (__v_3534 * __v_3536); + let __v_3538: G = (__v_3532 * __v_3537); + let __v_3539: G = G::from_u64(0); + if (__v_3538 != __v_3539) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3538.as_canonical_u64(), rhs: __v_3539.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3540: G = if unconstrained { Bytes2::xor(&__v_3371, &__v_3528) } else { bytes2_xor_value(__v_3371, __v_3528, record) }; + let __v_3541: G = if unconstrained { Bytes2::xor(&__v_3372, &__v_3529) } else { bytes2_xor_value(__v_3372, __v_3529, record) }; + let __v_3542: G = if unconstrained { Bytes2::xor(&__v_3373, &__v_3530) } else { bytes2_xor_value(__v_3373, __v_3530, record) }; + let __v_3543: G = if unconstrained { Bytes2::xor(&__v_3370, &__v_3531) } else { bytes2_xor_value(__v_3370, __v_3531, record) }; + let __u32_sum: u128 = u128::from(((__v_3170.as_canonical_u64() << 0) | (__v_3171.as_canonical_u64() << 8) | (__v_3172.as_canonical_u64() << 16) | (__v_3173.as_canonical_u64() << 24))) + u128::from(((__v_3542.as_canonical_u64() << 0) | (__v_3543.as_canonical_u64() << 8) | (__v_3540.as_canonical_u64() << 16) | (__v_3541.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3544: G = G::from_u8(__u32_bytes[0]); + let __v_3545: G = G::from_u8(__u32_bytes[1]); + let __v_3546: G = G::from_u8(__u32_bytes[2]); + let __v_3547: G = G::from_u8(__u32_bytes[3]); + let __v_3548: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3544; let __vj = __v_3545; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3546; let __vj = __v_3547; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3549: G = (__v_3548 * __v_3548); + if (__v_3549 != __v_3548) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3549.as_canonical_u64(), rhs: __v_3548.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3252, &__v_3544) } else { bytes2_xor_split4_value(__v_3252, __v_3544, record) }; + let __v_3550: G = __b2_out.0; + let __v_3551: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3253, &__v_3545) } else { bytes2_xor_split4_value(__v_3253, __v_3545, record) }; + let __v_3552: G = __b2_out.0; + let __v_3553: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3254, &__v_3546) } else { bytes2_xor_split4_value(__v_3254, __v_3546, record) }; + let __v_3554: G = __b2_out.0; + let __v_3555: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3255, &__v_3547) } else { bytes2_xor_split4_value(__v_3255, __v_3547, record) }; + let __v_3556: G = __b2_out.0; + let __v_3557: G = __b2_out.1; + let __v_3558: G = (__v_3552 + __v_3555); + let __v_3559: G = (__v_3554 + __v_3557); + let __v_3560: G = (__v_3556 + __v_3551); + let __v_3561: G = (__v_3550 + __v_3553); + let __u32_sum: u128 = u128::from(((__v_3528.as_canonical_u64() << 0) | (__v_3529.as_canonical_u64() << 8) | (__v_3530.as_canonical_u64() << 16) | (__v_3531.as_canonical_u64() << 24))) + u128::from(((__v_3558.as_canonical_u64() << 0) | (__v_3559.as_canonical_u64() << 8) | (__v_3560.as_canonical_u64() << 16) | (__v_3561.as_canonical_u64() << 24))) + u128::from(((__v_68.as_canonical_u64() << 0) | (__v_69.as_canonical_u64() << 8) | (__v_70.as_canonical_u64() << 16) | (__v_71.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3562: G = G::from_u8(__u32_bytes[0]); + let __v_3563: G = G::from_u8(__u32_bytes[1]); + let __v_3564: G = G::from_u8(__u32_bytes[2]); + let __v_3565: G = G::from_u8(__u32_bytes[3]); + let __v_3566: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3562; let __vj = __v_3563; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3564; let __vj = __v_3565; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3567: G = G::from_u64(1); + let __v_3568: G = (__v_3566 - __v_3567); + let __v_3569: G = G::from_u64(2); + let __v_3570: G = (__v_3566 - __v_3569); + let __v_3571: G = (__v_3568 * __v_3570); + let __v_3572: G = (__v_3566 * __v_3571); + let __v_3573: G = G::from_u64(0); + if (__v_3572 != __v_3573) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3572.as_canonical_u64(), rhs: __v_3573.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3574: G = if unconstrained { Bytes2::xor(&__v_3542, &__v_3562) } else { bytes2_xor_value(__v_3542, __v_3562, record) }; + let __v_3575: G = if unconstrained { Bytes2::xor(&__v_3543, &__v_3563) } else { bytes2_xor_value(__v_3543, __v_3563, record) }; + let __v_3576: G = if unconstrained { Bytes2::xor(&__v_3540, &__v_3564) } else { bytes2_xor_value(__v_3540, __v_3564, record) }; + let __v_3577: G = if unconstrained { Bytes2::xor(&__v_3541, &__v_3565) } else { bytes2_xor_value(__v_3541, __v_3565, record) }; + let __u32_sum: u128 = u128::from(((__v_3544.as_canonical_u64() << 0) | (__v_3545.as_canonical_u64() << 8) | (__v_3546.as_canonical_u64() << 16) | (__v_3547.as_canonical_u64() << 24))) + u128::from(((__v_3575.as_canonical_u64() << 0) | (__v_3576.as_canonical_u64() << 8) | (__v_3577.as_canonical_u64() << 16) | (__v_3574.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3578: G = G::from_u8(__u32_bytes[0]); + let __v_3579: G = G::from_u8(__u32_bytes[1]); + let __v_3580: G = G::from_u8(__u32_bytes[2]); + let __v_3581: G = G::from_u8(__u32_bytes[3]); + let __v_3582: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3578; let __vj = __v_3579; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3580; let __vj = __v_3581; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3583: G = (__v_3582 * __v_3582); + if (__v_3583 != __v_3582) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3583.as_canonical_u64(), rhs: __v_3582.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3558, &__v_3578) } else { bytes2_xor_split7_value(__v_3558, __v_3578, record) }; + let __v_3584: G = __b2_out.0; + let __v_3585: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3559, &__v_3579) } else { bytes2_xor_split7_value(__v_3559, __v_3579, record) }; + let __v_3586: G = __b2_out.0; + let __v_3587: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3560, &__v_3580) } else { bytes2_xor_split7_value(__v_3560, __v_3580, record) }; + let __v_3588: G = __b2_out.0; + let __v_3589: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3561, &__v_3581) } else { bytes2_xor_split7_value(__v_3561, __v_3581, record) }; + let __v_3590: G = __b2_out.0; + let __v_3591: G = __b2_out.1; + let __v_3592: G = (__v_3584 + __v_3587); + let __v_3593: G = (__v_3586 + __v_3589); + let __v_3594: G = (__v_3588 + __v_3591); + let __v_3595: G = (__v_3590 + __v_3585); + let __u32_sum: u128 = u128::from(((__v_3358.as_canonical_u64() << 0) | (__v_3359.as_canonical_u64() << 8) | (__v_3360.as_canonical_u64() << 16) | (__v_3361.as_canonical_u64() << 24))) + u128::from(((__v_3320.as_canonical_u64() << 0) | (__v_3321.as_canonical_u64() << 8) | (__v_3322.as_canonical_u64() << 16) | (__v_3323.as_canonical_u64() << 24))) + u128::from(((__v_64.as_canonical_u64() << 0) | (__v_65.as_canonical_u64() << 8) | (__v_66.as_canonical_u64() << 16) | (__v_67.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3596: G = G::from_u8(__u32_bytes[0]); + let __v_3597: G = G::from_u8(__u32_bytes[1]); + let __v_3598: G = G::from_u8(__u32_bytes[2]); + let __v_3599: G = G::from_u8(__u32_bytes[3]); + let __v_3600: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3596; let __vj = __v_3597; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3598; let __vj = __v_3599; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3601: G = G::from_u64(1); + let __v_3602: G = (__v_3600 - __v_3601); + let __v_3603: G = G::from_u64(2); + let __v_3604: G = (__v_3600 - __v_3603); + let __v_3605: G = (__v_3602 * __v_3604); + let __v_3606: G = (__v_3600 * __v_3605); + let __v_3607: G = G::from_u64(0); + if (__v_3606 != __v_3607) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3606.as_canonical_u64(), rhs: __v_3607.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3608: G = if unconstrained { Bytes2::xor(&__v_3167, &__v_3596) } else { bytes2_xor_value(__v_3167, __v_3596, record) }; + let __v_3609: G = if unconstrained { Bytes2::xor(&__v_3168, &__v_3597) } else { bytes2_xor_value(__v_3168, __v_3597, record) }; + let __v_3610: G = if unconstrained { Bytes2::xor(&__v_3169, &__v_3598) } else { bytes2_xor_value(__v_3169, __v_3598, record) }; + let __v_3611: G = if unconstrained { Bytes2::xor(&__v_3166, &__v_3599) } else { bytes2_xor_value(__v_3166, __v_3599, record) }; + let __u32_sum: u128 = u128::from(((__v_3238.as_canonical_u64() << 0) | (__v_3239.as_canonical_u64() << 8) | (__v_3240.as_canonical_u64() << 16) | (__v_3241.as_canonical_u64() << 24))) + u128::from(((__v_3610.as_canonical_u64() << 0) | (__v_3611.as_canonical_u64() << 8) | (__v_3608.as_canonical_u64() << 16) | (__v_3609.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3612: G = G::from_u8(__u32_bytes[0]); + let __v_3613: G = G::from_u8(__u32_bytes[1]); + let __v_3614: G = G::from_u8(__u32_bytes[2]); + let __v_3615: G = G::from_u8(__u32_bytes[3]); + let __v_3616: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3612; let __vj = __v_3613; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3614; let __vj = __v_3615; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3617: G = (__v_3616 * __v_3616); + if (__v_3617 != __v_3616) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3617.as_canonical_u64(), rhs: __v_3616.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3320, &__v_3612) } else { bytes2_xor_split4_value(__v_3320, __v_3612, record) }; + let __v_3618: G = __b2_out.0; + let __v_3619: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3321, &__v_3613) } else { bytes2_xor_split4_value(__v_3321, __v_3613, record) }; + let __v_3620: G = __b2_out.0; + let __v_3621: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3322, &__v_3614) } else { bytes2_xor_split4_value(__v_3322, __v_3614, record) }; + let __v_3622: G = __b2_out.0; + let __v_3623: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3323, &__v_3615) } else { bytes2_xor_split4_value(__v_3323, __v_3615, record) }; + let __v_3624: G = __b2_out.0; + let __v_3625: G = __b2_out.1; + let __v_3626: G = (__v_3620 + __v_3623); + let __v_3627: G = (__v_3622 + __v_3625); + let __v_3628: G = (__v_3624 + __v_3619); + let __v_3629: G = (__v_3618 + __v_3621); + let __u32_sum: u128 = u128::from(((__v_3596.as_canonical_u64() << 0) | (__v_3597.as_canonical_u64() << 8) | (__v_3598.as_canonical_u64() << 16) | (__v_3599.as_canonical_u64() << 24))) + u128::from(((__v_3626.as_canonical_u64() << 0) | (__v_3627.as_canonical_u64() << 8) | (__v_3628.as_canonical_u64() << 16) | (__v_3629.as_canonical_u64() << 24))) + u128::from(((__v_56.as_canonical_u64() << 0) | (__v_57.as_canonical_u64() << 8) | (__v_58.as_canonical_u64() << 16) | (__v_59.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3630: G = G::from_u8(__u32_bytes[0]); + let __v_3631: G = G::from_u8(__u32_bytes[1]); + let __v_3632: G = G::from_u8(__u32_bytes[2]); + let __v_3633: G = G::from_u8(__u32_bytes[3]); + let __v_3634: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3630; let __vj = __v_3631; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3632; let __vj = __v_3633; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3635: G = G::from_u64(1); + let __v_3636: G = (__v_3634 - __v_3635); + let __v_3637: G = G::from_u64(2); + let __v_3638: G = (__v_3634 - __v_3637); + let __v_3639: G = (__v_3636 * __v_3638); + let __v_3640: G = (__v_3634 * __v_3639); + let __v_3641: G = G::from_u64(0); + if (__v_3640 != __v_3641) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3640.as_canonical_u64(), rhs: __v_3641.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3642: G = if unconstrained { Bytes2::xor(&__v_3610, &__v_3630) } else { bytes2_xor_value(__v_3610, __v_3630, record) }; + let __v_3643: G = if unconstrained { Bytes2::xor(&__v_3611, &__v_3631) } else { bytes2_xor_value(__v_3611, __v_3631, record) }; + let __v_3644: G = if unconstrained { Bytes2::xor(&__v_3608, &__v_3632) } else { bytes2_xor_value(__v_3608, __v_3632, record) }; + let __v_3645: G = if unconstrained { Bytes2::xor(&__v_3609, &__v_3633) } else { bytes2_xor_value(__v_3609, __v_3633, record) }; + let __u32_sum: u128 = u128::from(((__v_3612.as_canonical_u64() << 0) | (__v_3613.as_canonical_u64() << 8) | (__v_3614.as_canonical_u64() << 16) | (__v_3615.as_canonical_u64() << 24))) + u128::from(((__v_3643.as_canonical_u64() << 0) | (__v_3644.as_canonical_u64() << 8) | (__v_3645.as_canonical_u64() << 16) | (__v_3642.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3646: G = G::from_u8(__u32_bytes[0]); + let __v_3647: G = G::from_u8(__u32_bytes[1]); + let __v_3648: G = G::from_u8(__u32_bytes[2]); + let __v_3649: G = G::from_u8(__u32_bytes[3]); + let __v_3650: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3646; let __vj = __v_3647; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3648; let __vj = __v_3649; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3651: G = (__v_3650 * __v_3650); + if (__v_3651 != __v_3650) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3651.as_canonical_u64(), rhs: __v_3650.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3626, &__v_3646) } else { bytes2_xor_split7_value(__v_3626, __v_3646, record) }; + let __v_3652: G = __b2_out.0; + let __v_3653: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3627, &__v_3647) } else { bytes2_xor_split7_value(__v_3627, __v_3647, record) }; + let __v_3654: G = __b2_out.0; + let __v_3655: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3628, &__v_3648) } else { bytes2_xor_split7_value(__v_3628, __v_3648, record) }; + let __v_3656: G = __b2_out.0; + let __v_3657: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3629, &__v_3649) } else { bytes2_xor_split7_value(__v_3629, __v_3649, record) }; + let __v_3658: G = __b2_out.0; + let __v_3659: G = __b2_out.1; + let __v_3660: G = (__v_3652 + __v_3655); + let __v_3661: G = (__v_3654 + __v_3657); + let __v_3662: G = (__v_3656 + __v_3659); + let __v_3663: G = (__v_3658 + __v_3653); + let __u32_sum: u128 = u128::from(((__v_3426.as_canonical_u64() << 0) | (__v_3427.as_canonical_u64() << 8) | (__v_3428.as_canonical_u64() << 16) | (__v_3429.as_canonical_u64() << 24))) + u128::from(((__v_3524.as_canonical_u64() << 0) | (__v_3525.as_canonical_u64() << 8) | (__v_3526.as_canonical_u64() << 16) | (__v_3527.as_canonical_u64() << 24))) + u128::from(((__v_88.as_canonical_u64() << 0) | (__v_89.as_canonical_u64() << 8) | (__v_90.as_canonical_u64() << 16) | (__v_91.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3664: G = G::from_u8(__u32_bytes[0]); + let __v_3665: G = G::from_u8(__u32_bytes[1]); + let __v_3666: G = G::from_u8(__u32_bytes[2]); + let __v_3667: G = G::from_u8(__u32_bytes[3]); + let __v_3668: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3664; let __vj = __v_3665; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3666; let __vj = __v_3667; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3669: G = G::from_u64(1); + let __v_3670: G = (__v_3668 - __v_3669); + let __v_3671: G = G::from_u64(2); + let __v_3672: G = (__v_3668 - __v_3671); + let __v_3673: G = (__v_3670 * __v_3672); + let __v_3674: G = (__v_3668 * __v_3673); + let __v_3675: G = G::from_u64(0); + if (__v_3674 != __v_3675) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3674.as_canonical_u64(), rhs: __v_3675.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3676: G = if unconstrained { Bytes2::xor(&__v_3643, &__v_3664) } else { bytes2_xor_value(__v_3643, __v_3664, record) }; + let __v_3677: G = if unconstrained { Bytes2::xor(&__v_3644, &__v_3665) } else { bytes2_xor_value(__v_3644, __v_3665, record) }; + let __v_3678: G = if unconstrained { Bytes2::xor(&__v_3645, &__v_3666) } else { bytes2_xor_value(__v_3645, __v_3666, record) }; + let __v_3679: G = if unconstrained { Bytes2::xor(&__v_3642, &__v_3667) } else { bytes2_xor_value(__v_3642, __v_3667, record) }; + let __u32_sum: u128 = u128::from(((__v_3578.as_canonical_u64() << 0) | (__v_3579.as_canonical_u64() << 8) | (__v_3580.as_canonical_u64() << 16) | (__v_3581.as_canonical_u64() << 24))) + u128::from(((__v_3678.as_canonical_u64() << 0) | (__v_3679.as_canonical_u64() << 8) | (__v_3676.as_canonical_u64() << 16) | (__v_3677.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3680: G = G::from_u8(__u32_bytes[0]); + let __v_3681: G = G::from_u8(__u32_bytes[1]); + let __v_3682: G = G::from_u8(__u32_bytes[2]); + let __v_3683: G = G::from_u8(__u32_bytes[3]); + let __v_3684: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3680; let __vj = __v_3681; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3682; let __vj = __v_3683; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3685: G = (__v_3684 * __v_3684); + if (__v_3685 != __v_3684) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3685.as_canonical_u64(), rhs: __v_3684.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3524, &__v_3680) } else { bytes2_xor_split4_value(__v_3524, __v_3680, record) }; + let __v_3686: G = __b2_out.0; + let __v_3687: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3525, &__v_3681) } else { bytes2_xor_split4_value(__v_3525, __v_3681, record) }; + let __v_3688: G = __b2_out.0; + let __v_3689: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3526, &__v_3682) } else { bytes2_xor_split4_value(__v_3526, __v_3682, record) }; + let __v_3690: G = __b2_out.0; + let __v_3691: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3527, &__v_3683) } else { bytes2_xor_split4_value(__v_3527, __v_3683, record) }; + let __v_3692: G = __b2_out.0; + let __v_3693: G = __b2_out.1; + let __v_3694: G = (__v_3688 + __v_3691); + let __v_3695: G = (__v_3690 + __v_3693); + let __v_3696: G = (__v_3692 + __v_3687); + let __v_3697: G = (__v_3686 + __v_3689); + let __u32_sum: u128 = u128::from(((__v_3664.as_canonical_u64() << 0) | (__v_3665.as_canonical_u64() << 8) | (__v_3666.as_canonical_u64() << 16) | (__v_3667.as_canonical_u64() << 24))) + u128::from(((__v_3694.as_canonical_u64() << 0) | (__v_3695.as_canonical_u64() << 8) | (__v_3696.as_canonical_u64() << 16) | (__v_3697.as_canonical_u64() << 24))) + u128::from(((__v_72.as_canonical_u64() << 0) | (__v_73.as_canonical_u64() << 8) | (__v_74.as_canonical_u64() << 16) | (__v_75.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3698: G = G::from_u8(__u32_bytes[0]); + let __v_3699: G = G::from_u8(__u32_bytes[1]); + let __v_3700: G = G::from_u8(__u32_bytes[2]); + let __v_3701: G = G::from_u8(__u32_bytes[3]); + let __v_3702: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3698; let __vj = __v_3699; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3700; let __vj = __v_3701; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3703: G = G::from_u64(1); + let __v_3704: G = (__v_3702 - __v_3703); + let __v_3705: G = G::from_u64(2); + let __v_3706: G = (__v_3702 - __v_3705); + let __v_3707: G = (__v_3704 * __v_3706); + let __v_3708: G = (__v_3702 * __v_3707); + let __v_3709: G = G::from_u64(0); + if (__v_3708 != __v_3709) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3708.as_canonical_u64(), rhs: __v_3709.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3710: G = if unconstrained { Bytes2::xor(&__v_3678, &__v_3698) } else { bytes2_xor_value(__v_3678, __v_3698, record) }; + let __v_3711: G = if unconstrained { Bytes2::xor(&__v_3679, &__v_3699) } else { bytes2_xor_value(__v_3679, __v_3699, record) }; + let __v_3712: G = if unconstrained { Bytes2::xor(&__v_3676, &__v_3700) } else { bytes2_xor_value(__v_3676, __v_3700, record) }; + let __v_3713: G = if unconstrained { Bytes2::xor(&__v_3677, &__v_3701) } else { bytes2_xor_value(__v_3677, __v_3701, record) }; + let __u32_sum: u128 = u128::from(((__v_3680.as_canonical_u64() << 0) | (__v_3681.as_canonical_u64() << 8) | (__v_3682.as_canonical_u64() << 16) | (__v_3683.as_canonical_u64() << 24))) + u128::from(((__v_3711.as_canonical_u64() << 0) | (__v_3712.as_canonical_u64() << 8) | (__v_3713.as_canonical_u64() << 16) | (__v_3710.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3714: G = G::from_u8(__u32_bytes[0]); + let __v_3715: G = G::from_u8(__u32_bytes[1]); + let __v_3716: G = G::from_u8(__u32_bytes[2]); + let __v_3717: G = G::from_u8(__u32_bytes[3]); + let __v_3718: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3714; let __vj = __v_3715; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3716; let __vj = __v_3717; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3719: G = (__v_3718 * __v_3718); + if (__v_3719 != __v_3718) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3719.as_canonical_u64(), rhs: __v_3718.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3694, &__v_3714) } else { bytes2_xor_split7_value(__v_3694, __v_3714, record) }; + let __v_3720: G = __b2_out.0; + let __v_3721: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3695, &__v_3715) } else { bytes2_xor_split7_value(__v_3695, __v_3715, record) }; + let __v_3722: G = __b2_out.0; + let __v_3723: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3696, &__v_3716) } else { bytes2_xor_split7_value(__v_3696, __v_3716, record) }; + let __v_3724: G = __b2_out.0; + let __v_3725: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3697, &__v_3717) } else { bytes2_xor_split7_value(__v_3697, __v_3717, record) }; + let __v_3726: G = __b2_out.0; + let __v_3727: G = __b2_out.1; + let __v_3728: G = (__v_3720 + __v_3723); + let __v_3729: G = (__v_3722 + __v_3725); + let __v_3730: G = (__v_3724 + __v_3727); + let __v_3731: G = (__v_3726 + __v_3721); + let __u32_sum: u128 = u128::from(((__v_3494.as_canonical_u64() << 0) | (__v_3495.as_canonical_u64() << 8) | (__v_3496.as_canonical_u64() << 16) | (__v_3497.as_canonical_u64() << 24))) + u128::from(((__v_3592.as_canonical_u64() << 0) | (__v_3593.as_canonical_u64() << 8) | (__v_3594.as_canonical_u64() << 16) | (__v_3595.as_canonical_u64() << 24))) + u128::from(((__v_40.as_canonical_u64() << 0) | (__v_41.as_canonical_u64() << 8) | (__v_42.as_canonical_u64() << 16) | (__v_43.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3732: G = G::from_u8(__u32_bytes[0]); + let __v_3733: G = G::from_u8(__u32_bytes[1]); + let __v_3734: G = G::from_u8(__u32_bytes[2]); + let __v_3735: G = G::from_u8(__u32_bytes[3]); + let __v_3736: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3732; let __vj = __v_3733; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3734; let __vj = __v_3735; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3737: G = G::from_u64(1); + let __v_3738: G = (__v_3736 - __v_3737); + let __v_3739: G = G::from_u64(2); + let __v_3740: G = (__v_3736 - __v_3739); + let __v_3741: G = (__v_3738 * __v_3740); + let __v_3742: G = (__v_3736 * __v_3741); + let __v_3743: G = G::from_u64(0); + if (__v_3742 != __v_3743) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3742.as_canonical_u64(), rhs: __v_3743.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3744: G = if unconstrained { Bytes2::xor(&__v_3439, &__v_3732) } else { bytes2_xor_value(__v_3439, __v_3732, record) }; + let __v_3745: G = if unconstrained { Bytes2::xor(&__v_3440, &__v_3733) } else { bytes2_xor_value(__v_3440, __v_3733, record) }; + let __v_3746: G = if unconstrained { Bytes2::xor(&__v_3441, &__v_3734) } else { bytes2_xor_value(__v_3441, __v_3734, record) }; + let __v_3747: G = if unconstrained { Bytes2::xor(&__v_3438, &__v_3735) } else { bytes2_xor_value(__v_3438, __v_3735, record) }; + let __u32_sum: u128 = u128::from(((__v_3646.as_canonical_u64() << 0) | (__v_3647.as_canonical_u64() << 8) | (__v_3648.as_canonical_u64() << 16) | (__v_3649.as_canonical_u64() << 24))) + u128::from(((__v_3746.as_canonical_u64() << 0) | (__v_3747.as_canonical_u64() << 8) | (__v_3744.as_canonical_u64() << 16) | (__v_3745.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3748: G = G::from_u8(__u32_bytes[0]); + let __v_3749: G = G::from_u8(__u32_bytes[1]); + let __v_3750: G = G::from_u8(__u32_bytes[2]); + let __v_3751: G = G::from_u8(__u32_bytes[3]); + let __v_3752: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3748; let __vj = __v_3749; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3750; let __vj = __v_3751; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3753: G = (__v_3752 * __v_3752); + if (__v_3753 != __v_3752) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3753.as_canonical_u64(), rhs: __v_3752.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3592, &__v_3748) } else { bytes2_xor_split4_value(__v_3592, __v_3748, record) }; + let __v_3754: G = __b2_out.0; + let __v_3755: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3593, &__v_3749) } else { bytes2_xor_split4_value(__v_3593, __v_3749, record) }; + let __v_3756: G = __b2_out.0; + let __v_3757: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3594, &__v_3750) } else { bytes2_xor_split4_value(__v_3594, __v_3750, record) }; + let __v_3758: G = __b2_out.0; + let __v_3759: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3595, &__v_3751) } else { bytes2_xor_split4_value(__v_3595, __v_3751, record) }; + let __v_3760: G = __b2_out.0; + let __v_3761: G = __b2_out.1; + let __v_3762: G = (__v_3756 + __v_3759); + let __v_3763: G = (__v_3758 + __v_3761); + let __v_3764: G = (__v_3760 + __v_3755); + let __v_3765: G = (__v_3754 + __v_3757); + let __u32_sum: u128 = u128::from(((__v_3732.as_canonical_u64() << 0) | (__v_3733.as_canonical_u64() << 8) | (__v_3734.as_canonical_u64() << 16) | (__v_3735.as_canonical_u64() << 24))) + u128::from(((__v_3762.as_canonical_u64() << 0) | (__v_3763.as_canonical_u64() << 8) | (__v_3764.as_canonical_u64() << 16) | (__v_3765.as_canonical_u64() << 24))) + u128::from(((__v_80.as_canonical_u64() << 0) | (__v_81.as_canonical_u64() << 8) | (__v_82.as_canonical_u64() << 16) | (__v_83.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3766: G = G::from_u8(__u32_bytes[0]); + let __v_3767: G = G::from_u8(__u32_bytes[1]); + let __v_3768: G = G::from_u8(__u32_bytes[2]); + let __v_3769: G = G::from_u8(__u32_bytes[3]); + let __v_3770: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3766; let __vj = __v_3767; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3768; let __vj = __v_3769; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3771: G = G::from_u64(1); + let __v_3772: G = (__v_3770 - __v_3771); + let __v_3773: G = G::from_u64(2); + let __v_3774: G = (__v_3770 - __v_3773); + let __v_3775: G = (__v_3772 * __v_3774); + let __v_3776: G = (__v_3770 * __v_3775); + let __v_3777: G = G::from_u64(0); + if (__v_3776 != __v_3777) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3776.as_canonical_u64(), rhs: __v_3777.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3778: G = if unconstrained { Bytes2::xor(&__v_3746, &__v_3766) } else { bytes2_xor_value(__v_3746, __v_3766, record) }; + let __v_3779: G = if unconstrained { Bytes2::xor(&__v_3747, &__v_3767) } else { bytes2_xor_value(__v_3747, __v_3767, record) }; + let __v_3780: G = if unconstrained { Bytes2::xor(&__v_3744, &__v_3768) } else { bytes2_xor_value(__v_3744, __v_3768, record) }; + let __v_3781: G = if unconstrained { Bytes2::xor(&__v_3745, &__v_3769) } else { bytes2_xor_value(__v_3745, __v_3769, record) }; + let __u32_sum: u128 = u128::from(((__v_3748.as_canonical_u64() << 0) | (__v_3749.as_canonical_u64() << 8) | (__v_3750.as_canonical_u64() << 16) | (__v_3751.as_canonical_u64() << 24))) + u128::from(((__v_3779.as_canonical_u64() << 0) | (__v_3780.as_canonical_u64() << 8) | (__v_3781.as_canonical_u64() << 16) | (__v_3778.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3782: G = G::from_u8(__u32_bytes[0]); + let __v_3783: G = G::from_u8(__u32_bytes[1]); + let __v_3784: G = G::from_u8(__u32_bytes[2]); + let __v_3785: G = G::from_u8(__u32_bytes[3]); + let __v_3786: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3782; let __vj = __v_3783; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3784; let __vj = __v_3785; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3787: G = (__v_3786 * __v_3786); + if (__v_3787 != __v_3786) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3787.as_canonical_u64(), rhs: __v_3786.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3762, &__v_3782) } else { bytes2_xor_split7_value(__v_3762, __v_3782, record) }; + let __v_3788: G = __b2_out.0; + let __v_3789: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3763, &__v_3783) } else { bytes2_xor_split7_value(__v_3763, __v_3783, record) }; + let __v_3790: G = __b2_out.0; + let __v_3791: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3764, &__v_3784) } else { bytes2_xor_split7_value(__v_3764, __v_3784, record) }; + let __v_3792: G = __b2_out.0; + let __v_3793: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3765, &__v_3785) } else { bytes2_xor_split7_value(__v_3765, __v_3785, record) }; + let __v_3794: G = __b2_out.0; + let __v_3795: G = __b2_out.1; + let __v_3796: G = (__v_3788 + __v_3791); + let __v_3797: G = (__v_3790 + __v_3793); + let __v_3798: G = (__v_3792 + __v_3795); + let __v_3799: G = (__v_3794 + __v_3789); + let __u32_sum: u128 = u128::from(((__v_3562.as_canonical_u64() << 0) | (__v_3563.as_canonical_u64() << 8) | (__v_3564.as_canonical_u64() << 16) | (__v_3565.as_canonical_u64() << 24))) + u128::from(((__v_3660.as_canonical_u64() << 0) | (__v_3661.as_canonical_u64() << 8) | (__v_3662.as_canonical_u64() << 16) | (__v_3663.as_canonical_u64() << 24))) + u128::from(((__v_44.as_canonical_u64() << 0) | (__v_45.as_canonical_u64() << 8) | (__v_46.as_canonical_u64() << 16) | (__v_47.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3800: G = G::from_u8(__u32_bytes[0]); + let __v_3801: G = G::from_u8(__u32_bytes[1]); + let __v_3802: G = G::from_u8(__u32_bytes[2]); + let __v_3803: G = G::from_u8(__u32_bytes[3]); + let __v_3804: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3800; let __vj = __v_3801; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3802; let __vj = __v_3803; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3805: G = G::from_u64(1); + let __v_3806: G = (__v_3804 - __v_3805); + let __v_3807: G = G::from_u64(2); + let __v_3808: G = (__v_3804 - __v_3807); + let __v_3809: G = (__v_3806 * __v_3808); + let __v_3810: G = (__v_3804 * __v_3809); + let __v_3811: G = G::from_u64(0); + if (__v_3810 != __v_3811) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3810.as_canonical_u64(), rhs: __v_3811.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3812: G = if unconstrained { Bytes2::xor(&__v_3507, &__v_3800) } else { bytes2_xor_value(__v_3507, __v_3800, record) }; + let __v_3813: G = if unconstrained { Bytes2::xor(&__v_3508, &__v_3801) } else { bytes2_xor_value(__v_3508, __v_3801, record) }; + let __v_3814: G = if unconstrained { Bytes2::xor(&__v_3509, &__v_3802) } else { bytes2_xor_value(__v_3509, __v_3802, record) }; + let __v_3815: G = if unconstrained { Bytes2::xor(&__v_3506, &__v_3803) } else { bytes2_xor_value(__v_3506, __v_3803, record) }; + let __u32_sum: u128 = u128::from(((__v_3442.as_canonical_u64() << 0) | (__v_3443.as_canonical_u64() << 8) | (__v_3444.as_canonical_u64() << 16) | (__v_3445.as_canonical_u64() << 24))) + u128::from(((__v_3814.as_canonical_u64() << 0) | (__v_3815.as_canonical_u64() << 8) | (__v_3812.as_canonical_u64() << 16) | (__v_3813.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3816: G = G::from_u8(__u32_bytes[0]); + let __v_3817: G = G::from_u8(__u32_bytes[1]); + let __v_3818: G = G::from_u8(__u32_bytes[2]); + let __v_3819: G = G::from_u8(__u32_bytes[3]); + let __v_3820: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3816; let __vj = __v_3817; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3818; let __vj = __v_3819; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3821: G = (__v_3820 * __v_3820); + if (__v_3821 != __v_3820) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3821.as_canonical_u64(), rhs: __v_3820.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3660, &__v_3816) } else { bytes2_xor_split4_value(__v_3660, __v_3816, record) }; + let __v_3822: G = __b2_out.0; + let __v_3823: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3661, &__v_3817) } else { bytes2_xor_split4_value(__v_3661, __v_3817, record) }; + let __v_3824: G = __b2_out.0; + let __v_3825: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3662, &__v_3818) } else { bytes2_xor_split4_value(__v_3662, __v_3818, record) }; + let __v_3826: G = __b2_out.0; + let __v_3827: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3663, &__v_3819) } else { bytes2_xor_split4_value(__v_3663, __v_3819, record) }; + let __v_3828: G = __b2_out.0; + let __v_3829: G = __b2_out.1; + let __v_3830: G = (__v_3824 + __v_3827); + let __v_3831: G = (__v_3826 + __v_3829); + let __v_3832: G = (__v_3828 + __v_3823); + let __v_3833: G = (__v_3822 + __v_3825); + let __u32_sum: u128 = u128::from(((__v_3800.as_canonical_u64() << 0) | (__v_3801.as_canonical_u64() << 8) | (__v_3802.as_canonical_u64() << 16) | (__v_3803.as_canonical_u64() << 24))) + u128::from(((__v_3830.as_canonical_u64() << 0) | (__v_3831.as_canonical_u64() << 8) | (__v_3832.as_canonical_u64() << 16) | (__v_3833.as_canonical_u64() << 24))) + u128::from(((__v_48.as_canonical_u64() << 0) | (__v_49.as_canonical_u64() << 8) | (__v_50.as_canonical_u64() << 16) | (__v_51.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3834: G = G::from_u8(__u32_bytes[0]); + let __v_3835: G = G::from_u8(__u32_bytes[1]); + let __v_3836: G = G::from_u8(__u32_bytes[2]); + let __v_3837: G = G::from_u8(__u32_bytes[3]); + let __v_3838: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3834; let __vj = __v_3835; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3836; let __vj = __v_3837; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3839: G = G::from_u64(1); + let __v_3840: G = (__v_3838 - __v_3839); + let __v_3841: G = G::from_u64(2); + let __v_3842: G = (__v_3838 - __v_3841); + let __v_3843: G = (__v_3840 * __v_3842); + let __v_3844: G = (__v_3838 * __v_3843); + let __v_3845: G = G::from_u64(0); + if (__v_3844 != __v_3845) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3844.as_canonical_u64(), rhs: __v_3845.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3846: G = if unconstrained { Bytes2::xor(&__v_3814, &__v_3834) } else { bytes2_xor_value(__v_3814, __v_3834, record) }; + let __v_3847: G = if unconstrained { Bytes2::xor(&__v_3815, &__v_3835) } else { bytes2_xor_value(__v_3815, __v_3835, record) }; + let __v_3848: G = if unconstrained { Bytes2::xor(&__v_3812, &__v_3836) } else { bytes2_xor_value(__v_3812, __v_3836, record) }; + let __v_3849: G = if unconstrained { Bytes2::xor(&__v_3813, &__v_3837) } else { bytes2_xor_value(__v_3813, __v_3837, record) }; + let __u32_sum: u128 = u128::from(((__v_3816.as_canonical_u64() << 0) | (__v_3817.as_canonical_u64() << 8) | (__v_3818.as_canonical_u64() << 16) | (__v_3819.as_canonical_u64() << 24))) + u128::from(((__v_3847.as_canonical_u64() << 0) | (__v_3848.as_canonical_u64() << 8) | (__v_3849.as_canonical_u64() << 16) | (__v_3846.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3850: G = G::from_u8(__u32_bytes[0]); + let __v_3851: G = G::from_u8(__u32_bytes[1]); + let __v_3852: G = G::from_u8(__u32_bytes[2]); + let __v_3853: G = G::from_u8(__u32_bytes[3]); + let __v_3854: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3850; let __vj = __v_3851; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3852; let __vj = __v_3853; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3855: G = (__v_3854 * __v_3854); + if (__v_3855 != __v_3854) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3855.as_canonical_u64(), rhs: __v_3854.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3830, &__v_3850) } else { bytes2_xor_split7_value(__v_3830, __v_3850, record) }; + let __v_3856: G = __b2_out.0; + let __v_3857: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3831, &__v_3851) } else { bytes2_xor_split7_value(__v_3831, __v_3851, record) }; + let __v_3858: G = __b2_out.0; + let __v_3859: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3832, &__v_3852) } else { bytes2_xor_split7_value(__v_3832, __v_3852, record) }; + let __v_3860: G = __b2_out.0; + let __v_3861: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3833, &__v_3853) } else { bytes2_xor_split7_value(__v_3833, __v_3853, record) }; + let __v_3862: G = __b2_out.0; + let __v_3863: G = __b2_out.1; + let __v_3864: G = (__v_3856 + __v_3859); + let __v_3865: G = (__v_3858 + __v_3861); + let __v_3866: G = (__v_3860 + __v_3863); + let __v_3867: G = (__v_3862 + __v_3857); + let __u32_sum: u128 = u128::from(((__v_3630.as_canonical_u64() << 0) | (__v_3631.as_canonical_u64() << 8) | (__v_3632.as_canonical_u64() << 16) | (__v_3633.as_canonical_u64() << 24))) + u128::from(((__v_3456.as_canonical_u64() << 0) | (__v_3457.as_canonical_u64() << 8) | (__v_3458.as_canonical_u64() << 16) | (__v_3459.as_canonical_u64() << 24))) + u128::from(((__v_60.as_canonical_u64() << 0) | (__v_61.as_canonical_u64() << 8) | (__v_62.as_canonical_u64() << 16) | (__v_63.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3868: G = G::from_u8(__u32_bytes[0]); + let __v_3869: G = G::from_u8(__u32_bytes[1]); + let __v_3870: G = G::from_u8(__u32_bytes[2]); + let __v_3871: G = G::from_u8(__u32_bytes[3]); + let __v_3872: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3868; let __vj = __v_3869; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3870; let __vj = __v_3871; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3873: G = G::from_u64(1); + let __v_3874: G = (__v_3872 - __v_3873); + let __v_3875: G = G::from_u64(2); + let __v_3876: G = (__v_3872 - __v_3875); + let __v_3877: G = (__v_3874 * __v_3876); + let __v_3878: G = (__v_3872 * __v_3877); + let __v_3879: G = G::from_u64(0); + if (__v_3878 != __v_3879) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3878.as_canonical_u64(), rhs: __v_3879.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3880: G = if unconstrained { Bytes2::xor(&__v_3575, &__v_3868) } else { bytes2_xor_value(__v_3575, __v_3868, record) }; + let __v_3881: G = if unconstrained { Bytes2::xor(&__v_3576, &__v_3869) } else { bytes2_xor_value(__v_3576, __v_3869, record) }; + let __v_3882: G = if unconstrained { Bytes2::xor(&__v_3577, &__v_3870) } else { bytes2_xor_value(__v_3577, __v_3870, record) }; + let __v_3883: G = if unconstrained { Bytes2::xor(&__v_3574, &__v_3871) } else { bytes2_xor_value(__v_3574, __v_3871, record) }; + let __u32_sum: u128 = u128::from(((__v_3510.as_canonical_u64() << 0) | (__v_3511.as_canonical_u64() << 8) | (__v_3512.as_canonical_u64() << 16) | (__v_3513.as_canonical_u64() << 24))) + u128::from(((__v_3882.as_canonical_u64() << 0) | (__v_3883.as_canonical_u64() << 8) | (__v_3880.as_canonical_u64() << 16) | (__v_3881.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3884: G = G::from_u8(__u32_bytes[0]); + let __v_3885: G = G::from_u8(__u32_bytes[1]); + let __v_3886: G = G::from_u8(__u32_bytes[2]); + let __v_3887: G = G::from_u8(__u32_bytes[3]); + let __v_3888: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3884; let __vj = __v_3885; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3886; let __vj = __v_3887; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3889: G = (__v_3888 * __v_3888); + if (__v_3889 != __v_3888) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3889.as_canonical_u64(), rhs: __v_3888.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3456, &__v_3884) } else { bytes2_xor_split4_value(__v_3456, __v_3884, record) }; + let __v_3890: G = __b2_out.0; + let __v_3891: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3457, &__v_3885) } else { bytes2_xor_split4_value(__v_3457, __v_3885, record) }; + let __v_3892: G = __b2_out.0; + let __v_3893: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3458, &__v_3886) } else { bytes2_xor_split4_value(__v_3458, __v_3886, record) }; + let __v_3894: G = __b2_out.0; + let __v_3895: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split4(&__v_3459, &__v_3887) } else { bytes2_xor_split4_value(__v_3459, __v_3887, record) }; + let __v_3896: G = __b2_out.0; + let __v_3897: G = __b2_out.1; + let __v_3898: G = (__v_3892 + __v_3895); + let __v_3899: G = (__v_3894 + __v_3897); + let __v_3900: G = (__v_3896 + __v_3891); + let __v_3901: G = (__v_3890 + __v_3893); + let __u32_sum: u128 = u128::from(((__v_3868.as_canonical_u64() << 0) | (__v_3869.as_canonical_u64() << 8) | (__v_3870.as_canonical_u64() << 16) | (__v_3871.as_canonical_u64() << 24))) + u128::from(((__v_3898.as_canonical_u64() << 0) | (__v_3899.as_canonical_u64() << 8) | (__v_3900.as_canonical_u64() << 16) | (__v_3901.as_canonical_u64() << 24))) + u128::from(((__v_84.as_canonical_u64() << 0) | (__v_85.as_canonical_u64() << 8) | (__v_86.as_canonical_u64() << 16) | (__v_87.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3902: G = G::from_u8(__u32_bytes[0]); + let __v_3903: G = G::from_u8(__u32_bytes[1]); + let __v_3904: G = G::from_u8(__u32_bytes[2]); + let __v_3905: G = G::from_u8(__u32_bytes[3]); + let __v_3906: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3902; let __vj = __v_3903; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3904; let __vj = __v_3905; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3907: G = G::from_u64(1); + let __v_3908: G = (__v_3906 - __v_3907); + let __v_3909: G = G::from_u64(2); + let __v_3910: G = (__v_3906 - __v_3909); + let __v_3911: G = (__v_3908 * __v_3910); + let __v_3912: G = (__v_3906 * __v_3911); + let __v_3913: G = G::from_u64(0); + if (__v_3912 != __v_3913) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3912.as_canonical_u64(), rhs: __v_3913.as_canonical_u64(), msg: Some("u32_add3: carry is not in {0, 1, 2}".to_string()) }); + } + let __v_3914: G = if unconstrained { Bytes2::xor(&__v_3882, &__v_3902) } else { bytes2_xor_value(__v_3882, __v_3902, record) }; + let __v_3915: G = if unconstrained { Bytes2::xor(&__v_3883, &__v_3903) } else { bytes2_xor_value(__v_3883, __v_3903, record) }; + let __v_3916: G = if unconstrained { Bytes2::xor(&__v_3880, &__v_3904) } else { bytes2_xor_value(__v_3880, __v_3904, record) }; + let __v_3917: G = if unconstrained { Bytes2::xor(&__v_3881, &__v_3905) } else { bytes2_xor_value(__v_3881, __v_3905, record) }; + let __u32_sum: u128 = u128::from(((__v_3884.as_canonical_u64() << 0) | (__v_3885.as_canonical_u64() << 8) | (__v_3886.as_canonical_u64() << 16) | (__v_3887.as_canonical_u64() << 24))) + u128::from(((__v_3915.as_canonical_u64() << 0) | (__v_3916.as_canonical_u64() << 8) | (__v_3917.as_canonical_u64() << 16) | (__v_3914.as_canonical_u64() << 24))); + let __u32_bytes = u32::try_from(__u32_sum & 0xFFFF_FFFF).expect("masked").to_le_bytes(); + let __v_3918: G = G::from_u8(__u32_bytes[0]); + let __v_3919: G = G::from_u8(__u32_bytes[1]); + let __v_3920: G = G::from_u8(__u32_bytes[2]); + let __v_3921: G = G::from_u8(__u32_bytes[3]); + let __v_3922: G = G::from_u64(u64::try_from(__u32_sum >> 32).expect("u32 sum overflow fits u64")); + if !unconstrained { let __vi = __v_3918; let __vj = __v_3919; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + if !unconstrained { let __vi = __v_3920; let __vj = __v_3921; let __bi = __vi.as_canonical_u64(); let __bj = __vj.as_canonical_u64(); if __bi >= 256 { return Err(ExecError::U8RangeCheckFailed(__bi)); } if __bj >= 256 { return Err(ExecError::U8RangeCheckFailed(__bj)); } record.bytes2_queries.bump_range_check(&__vi, &__vj); }; + let __v_3923: G = (__v_3922 * __v_3922); + if (__v_3923 != __v_3922) { + return Err(ExecError::AssertEqMismatch { lhs: __v_3923.as_canonical_u64(), rhs: __v_3922.as_canonical_u64(), msg: Some("u32_add: carry is not boolean".to_string()) }); + } + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3898, &__v_3918) } else { bytes2_xor_split7_value(__v_3898, __v_3918, record) }; + let __v_3924: G = __b2_out.0; + let __v_3925: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3899, &__v_3919) } else { bytes2_xor_split7_value(__v_3899, __v_3919, record) }; + let __v_3926: G = __b2_out.0; + let __v_3927: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3900, &__v_3920) } else { bytes2_xor_split7_value(__v_3900, __v_3920, record) }; + let __v_3928: G = __b2_out.0; + let __v_3929: G = __b2_out.1; + let __b2_out: (G, G) = if unconstrained { Bytes2::xor_split7(&__v_3901, &__v_3921) } else { bytes2_xor_split7_value(__v_3901, __v_3921, record) }; + let __v_3930: G = __b2_out.0; + let __v_3931: G = __b2_out.1; + let __v_3932: G = (__v_3924 + __v_3927); + let __v_3933: G = (__v_3926 + __v_3929); + let __v_3934: G = (__v_3928 + __v_3931); + let __v_3935: G = (__v_3930 + __v_3925); + let __v_3936: G = if unconstrained { Bytes2::xor(&__v_3698, &__v_3850) } else { bytes2_xor_value(__v_3698, __v_3850, record) }; + let __v_3937: G = if unconstrained { Bytes2::xor(&__v_3699, &__v_3851) } else { bytes2_xor_value(__v_3699, __v_3851, record) }; + let __v_3938: G = if unconstrained { Bytes2::xor(&__v_3700, &__v_3852) } else { bytes2_xor_value(__v_3700, __v_3852, record) }; + let __v_3939: G = if unconstrained { Bytes2::xor(&__v_3701, &__v_3853) } else { bytes2_xor_value(__v_3701, __v_3853, record) }; + let __v_3940: G = if unconstrained { Bytes2::xor(&__v_3766, &__v_3918) } else { bytes2_xor_value(__v_3766, __v_3918, record) }; + let __v_3941: G = if unconstrained { Bytes2::xor(&__v_3767, &__v_3919) } else { bytes2_xor_value(__v_3767, __v_3919, record) }; + let __v_3942: G = if unconstrained { Bytes2::xor(&__v_3768, &__v_3920) } else { bytes2_xor_value(__v_3768, __v_3920, record) }; + let __v_3943: G = if unconstrained { Bytes2::xor(&__v_3769, &__v_3921) } else { bytes2_xor_value(__v_3769, __v_3921, record) }; + let __v_3944: G = if unconstrained { Bytes2::xor(&__v_3834, &__v_3714) } else { bytes2_xor_value(__v_3834, __v_3714, record) }; + let __v_3945: G = if unconstrained { Bytes2::xor(&__v_3835, &__v_3715) } else { bytes2_xor_value(__v_3835, __v_3715, record) }; + let __v_3946: G = if unconstrained { Bytes2::xor(&__v_3836, &__v_3716) } else { bytes2_xor_value(__v_3836, __v_3716, record) }; + let __v_3947: G = if unconstrained { Bytes2::xor(&__v_3837, &__v_3717) } else { bytes2_xor_value(__v_3837, __v_3717, record) }; + let __v_3948: G = if unconstrained { Bytes2::xor(&__v_3902, &__v_3782) } else { bytes2_xor_value(__v_3902, __v_3782, record) }; + let __v_3949: G = if unconstrained { Bytes2::xor(&__v_3903, &__v_3783) } else { bytes2_xor_value(__v_3903, __v_3783, record) }; + let __v_3950: G = if unconstrained { Bytes2::xor(&__v_3904, &__v_3784) } else { bytes2_xor_value(__v_3904, __v_3784, record) }; + let __v_3951: G = if unconstrained { Bytes2::xor(&__v_3905, &__v_3785) } else { bytes2_xor_value(__v_3905, __v_3785, record) }; + let __v_3952: G = if unconstrained { Bytes2::xor(&__v_3932, &__v_3779) } else { bytes2_xor_value(__v_3932, __v_3779, record) }; + let __v_3953: G = if unconstrained { Bytes2::xor(&__v_3933, &__v_3780) } else { bytes2_xor_value(__v_3933, __v_3780, record) }; + let __v_3954: G = if unconstrained { Bytes2::xor(&__v_3934, &__v_3781) } else { bytes2_xor_value(__v_3934, __v_3781, record) }; + let __v_3955: G = if unconstrained { Bytes2::xor(&__v_3935, &__v_3778) } else { bytes2_xor_value(__v_3935, __v_3778, record) }; + let __v_3956: G = if unconstrained { Bytes2::xor(&__v_3728, &__v_3847) } else { bytes2_xor_value(__v_3728, __v_3847, record) }; + let __v_3957: G = if unconstrained { Bytes2::xor(&__v_3729, &__v_3848) } else { bytes2_xor_value(__v_3729, __v_3848, record) }; + let __v_3958: G = if unconstrained { Bytes2::xor(&__v_3730, &__v_3849) } else { bytes2_xor_value(__v_3730, __v_3849, record) }; + let __v_3959: G = if unconstrained { Bytes2::xor(&__v_3731, &__v_3846) } else { bytes2_xor_value(__v_3731, __v_3846, record) }; + let __v_3960: G = if unconstrained { Bytes2::xor(&__v_3796, &__v_3915) } else { bytes2_xor_value(__v_3796, __v_3915, record) }; + let __v_3961: G = if unconstrained { Bytes2::xor(&__v_3797, &__v_3916) } else { bytes2_xor_value(__v_3797, __v_3916, record) }; + let __v_3962: G = if unconstrained { Bytes2::xor(&__v_3798, &__v_3917) } else { bytes2_xor_value(__v_3798, __v_3917, record) }; + let __v_3963: G = if unconstrained { Bytes2::xor(&__v_3799, &__v_3914) } else { bytes2_xor_value(__v_3799, __v_3914, record) }; + let __v_3964: G = if unconstrained { Bytes2::xor(&__v_3864, &__v_3711) } else { bytes2_xor_value(__v_3864, __v_3711, record) }; + let __v_3965: G = if unconstrained { Bytes2::xor(&__v_3865, &__v_3712) } else { bytes2_xor_value(__v_3865, __v_3712, record) }; + let __v_3966: G = if unconstrained { Bytes2::xor(&__v_3866, &__v_3713) } else { bytes2_xor_value(__v_3866, __v_3713, record) }; + let __v_3967: G = if unconstrained { Bytes2::xor(&__v_3867, &__v_3710) } else { bytes2_xor_value(__v_3867, __v_3710, record) }; + let __ret: [G; OUT_70] = [__v_3936, __v_3937, __v_3938, __v_3939, __v_3940, __v_3941, __v_3942, __v_3943, __v_3944, __v_3945, __v_3946, __v_3947, __v_3948, __v_3949, __v_3950, __v_3951, __v_3952, __v_3953, __v_3954, __v_3955, __v_3956, __v_3957, __v_3958, __v_3959, __v_3960, __v_3961, __v_3962, __v_3963, __v_3964, __v_3965, __v_3966, __v_3967]; record.function_queries[70].insert(&inp[..], &__ret[..], G::from_bool(!unconstrained)); return Ok(__ret); })