diff --git a/Arm/Memory/Common.lean b/Arm/Memory/Common.lean index 2ee68e26..b9f643fb 100644 --- a/Arm/Memory/Common.lean +++ b/Arm/Memory/Common.lean @@ -255,7 +255,7 @@ def TacticM.withTraceNode' [MonadRef m] [AddMessageContext m] [MonadOptions m] - [always : MonadAlwaysExcept ε m] + [_always : MonadAlwaysExcept ε m] [MonadLiftT BaseIO m] (header : MessageData) (k : m α) (collapsed : Bool := false) @@ -272,7 +272,7 @@ def TacticM.traceLargeMsg [MonadRef m] [AddMessageContext m] [MonadOptions m] - [always : MonadAlwaysExcept ε m] + [_always : MonadAlwaysExcept ε m] [MonadLiftT BaseIO m] (header : MessageData) (msg : MessageData) : m Unit := do diff --git a/Proofs/AES-GCM/GCMInitV8Sym.lean b/Proofs/AES-GCM/GCMInitV8Sym.lean index c5edc1b6..8be3de13 100644 --- a/Proofs/AES-GCM/GCMInitV8Sym.lean +++ b/Proofs/AES-GCM/GCMInitV8Sym.lean @@ -30,7 +30,7 @@ theorem gcm_init_v8_program_correct (s0 sf : ArmState) (h_s0_pc : read_pc s0 = gcm_init_v8_program.min) (h_s0_sp_aligned : CheckSPAlignment s0) (h_run : sf = run gcm_init_v8_program.length s0) - (h_mem : Memory.Region.pairwiseSeparate + (_h_mem : Memory.Region.pairwiseSeparate [ ⟨(H_addr s0), 128⟩, ⟨(Htable_addr s0), 2048⟩ ]) : -- effects diff --git a/Proofs/Experiments/Max/MaxTandem.lean b/Proofs/Experiments/Max/MaxTandem.lean index eb6ef70e..ae8da77b 100644 --- a/Proofs/Experiments/Max/MaxTandem.lean +++ b/Proofs/Experiments/Max/MaxTandem.lean @@ -637,7 +637,7 @@ theorem partial_correctness : -- 2/15 name h_s1_run : s2 := run 1 s1 - obtain ⟨h_s2_cut, h_s2_pc, h_s2_err, h_s2_program, h_s2_read_sp_8, h_s2_read_sp_12, h_s2_x0, h_s2_x1, h_s2_sp, h_s2_sp_aligned⟩ := + obtain ⟨h_s2_cut, h_s2_pc, h_s2_err, h_s2_program, _h_s2_read_sp_8, h_s2_read_sp_12, h_s2_x0, h_s2_x1, h_s2_sp, h_s2_sp_aligned⟩ := program.stepi_0x898_cut s1 s2 h_s1_program h_s1_pc h_s1_err h_s1_sp_aligned (by mem_omega) h_s1_run.symm rw [Correctness.snd_cassert_of_not_cut h_s2_cut]; -- try rw [Correctness.snd_cassert_of_cut h_cut]; simp [show Sys.next s2 = run 1 s2 by rfl] diff --git a/Proofs/Experiments/MemoryAliasing.lean b/Proofs/Experiments/MemoryAliasing.lean index c3fb9c48..4ee847c9 100644 --- a/Proofs/Experiments/MemoryAliasing.lean +++ b/Proofs/Experiments/MemoryAliasing.lean @@ -333,8 +333,8 @@ theorem mem_automation_test_2_conv theorem mem_automation_test_2_conv_focus (h_n0 : n0 ≠ 0) - (h_no_wrap_src_region : mem_legal' src_addr (n0 <<< 4)) - (h_no_wrap_dest_region : mem_legal' dest_addr (n0 <<< 4)) + (_h_no_wrap_src_region : mem_legal' src_addr (n0 <<< 4)) + (_h_no_wrap_dest_region : mem_legal' dest_addr (n0 <<< 4)) (h_s0_src_dest_separate : mem_separate' src_addr (n0 <<< 4) dest_addr (n0 <<< 4)) : @@ -369,7 +369,7 @@ theorem mem_automation_test_3 interleaved write `[ignore_addr..ignore_addr+ignore_n)` -/ theorem mem_automation_test_3_conv - (h_no_wrap_src_region : mem_legal' src_addr 16) + (_h_no_wrap_src_region : mem_legal' src_addr 16) (h_s0_src_ignore_disjoint : mem_separate' src_addr 16 ignore_addr ignore_n) : @@ -645,7 +645,7 @@ namespace SimpMemConv #time theorem irrelvant_hyps - (h_irrelevant: mem_subset' src_addr 10 src_addr 30) + (_h_irrelevant: mem_subset' src_addr 10 src_addr 30) (h_s0_src_dest_separate : mem_separate' src_addr 16 dest_addr 16) : read_mem_bytes 16 src_addr (write_mem_bytes 16 dest_addr blah s0) = read_mem_bytes 16 src_addr s0 := by diff --git a/Proofs/SHA512/SHA512BlockSym.lean b/Proofs/SHA512/SHA512BlockSym.lean index 6e8308b4..a9e7fa1c 100644 --- a/Proofs/SHA512/SHA512BlockSym.lean +++ b/Proofs/SHA512/SHA512BlockSym.lean @@ -4,7 +4,9 @@ Released under Apache 2.0 license as described in the file LICENSE. Author(s): Shilpi Goel -/ import Proofs.SHA512.SHA512LoopBlocks --- import Proofs.SHA512.SHA512LoopBlocks2 +import Proofs.SHA512.SHA512Prelude +import Proofs.SHA512.SHA512_block_armv8_rules +import Arm.Cfg.Cfg import Tactics.SymBlock import Tactics.ClearNamed @@ -12,15 +14,67 @@ open BitVec namespace SHA512 +/- +set_option pp.maxSteps 1000 in +set_option maxRecDepth 8000 in +theorem spec_simp_a + { a b c d e f g h + i0 i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 i15 + k0 k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 k12 k13 k14 k15 + k16 k17 k18 k19 k20 k21 k22 k23 k24 k25 k26 k27 k28 + k29 k30 k31 k32 k33 k34 k35 k36 k37 k38 k39 k40 k41 + k42 k43 k44 k45 k46 k47 k48 k49 k50 k51 k52 k53 k54 + k55 k56 k57 k58 k59 k60 k61 k62 k63 k64 k65 k66 k67 + k68 k69 k70 k71 k72 k73 k74 k75 k76 k77 k78 k79 + : BitVec 64 } + (h_hash : (h0 : SHA2.Hash) = {a, b, c, d, e, f, g, h}) + (h_ktbl : k = [k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, + k13, k14, k15, + k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, + k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, + k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, k54, + k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66, k67, + k68, k69, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79]) + (h_input : input = [[ i15, i14, i13, i12, i11, i10, i9, i8, + i7, i6, i5, i4, i3, i2, i1, i0 ]]) : + (SHA2.processBlocks_alt 80 h0 k input).a = + xxxx := by + simp [h_hash, h_ktbl, h_input, + SHA2.processBlocks_alt, SHA2.add_hash, + SHA2.compression_alt, SHA2.compression_update, + SHA2.message_schedule_word] + + sorry +-/ + +/- +Block Sizes: +[8, + 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, + 11, 11, 11, 11, 11, 11, 11, + 11, + 5] +-/ + #time set_option linter.unusedVariables false in -- set_option trace.Tactic.sym.info true in -- set_option trace.Tactic.sym true in set_option pp.maxSteps 100 in +set_option maxHeartbeats 2000000 in +set_option maxRecDepth 8000 in theorem sha512_loop_sym {s0 sf : ArmState} { a b c d e f g h i0 i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 i15 - k0 k1 + k0 k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 k12 k13 k14 k15 + k16 k17 k18 k19 k20 k21 k22 k23 k24 k25 k26 k27 k28 + k29 k30 k31 k32 k33 k34 k35 k36 k37 k38 k39 k40 k41 + k42 k43 k44 k45 k46 k47 k48 k49 k50 k51 k52 k53 k54 + k55 k56 k57 k58 k59 k60 k61 k62 k63 k64 k65 k66 k67 + k68 k69 k70 k71 k72 k73 k74 k75 k76 k77 k78 k79 : BitVec 64 } (h_program : s0.program = program) (h_pc : r StateField.PC s0 = 0x126500#64) @@ -40,83 +94,149 @@ theorem sha512_loop_sym {s0 sf : ArmState} (h_q22 : r (.SFP 22#5) s0 = i13 ++ i12) (h_q23 : r (.SFP 23#5) s0 = i15 ++ i14) --- (h_ktbl0 : s0[r (.GPR 3#5) s0, 16] = k1 ++ k0) --- (h_ktbl1 : s0[r (.GPR 3#5) s0 + 16, 16] = k3 ++ k2) --- (h_ktbl2 : s0[r (.GPR 3#5) s0 + 16*2, 16] = k5 ++ k4) --- (h_ktbl3 : s0[r (.GPR 3#5) s0 + 16*3, 16] = k7 ++ k6) --- --- (h_ktbl4 : s0[r (.GPR 3#5) s0 + 16*4, 16] = k9 ++ k8) --- (h_ktbl5 : s0[r (.GPR 3#5) s0 + 16*5, 16] = k11 ++ k10) --- (h_ktbl6 : s0[r (.GPR 3#5) s0 + 16*6, 16] = k13 ++ k12) --- (h_ktbl7 : s0[r (.GPR 3#5) s0 + 16*7, 16] = k15 ++ k14) --- --- (h_ktbl8 : s0[r (.GPR 3#5) s0 + 16*8, 16] = k17 ++ k16) --- (h_ktbl9 : s0[r (.GPR 3#5) s0 + 16*9, 16] = k19 ++ k18) --- (h_ktbl10 : s0[r (.GPR 3#5) s0 + 16*10, 16] = k21 ++ k20) --- (h_ktbl11 : s0[r (.GPR 3#5) s0 + 16*11, 16] = k23 ++ k22) --- --- (h_ktbl12 : s0[r (.GPR 3#5) s0 + 16*12, 16] = k25 ++ k24) --- (h_ktbl13 : s0[r (.GPR 3#5) s0 + 16*13, 16] = k27 ++ k26) --- (h_ktbl14 : s0[r (.GPR 3#5) s0 + 16*14, 16] = k29 ++ k28) --- (h_ktbl15 : s0[r (.GPR 3#5) s0 + 16*15, 16] = k31 ++ k30) --- --- (h_ktbl16 : s0[r (.GPR 3#5) s0 + 16*16, 16] = k33 ++ k32) --- (h_ktbl17 : s0[r (.GPR 3#5) s0 + 16*17, 16] = k35 ++ k34) --- (h_ktbl18 : s0[r (.GPR 3#5) s0 + 16*18, 16] = k37 ++ k36) --- (h_ktbl19 : s0[r (.GPR 3#5) s0 + 16*19, 16] = k39 ++ k38) --- --- (h_ktbl20 : s0[r (.GPR 3#5) s0 + 16*20, 16] = k41 ++ k40) --- (h_ktbl21 : s0[r (.GPR 3#5) s0 + 16*21, 16] = k43 ++ k42) --- (h_ktbl22 : s0[r (.GPR 3#5) s0 + 16*22, 16] = k45 ++ k44) --- (h_ktbl23 : s0[r (.GPR 3#5) s0 + 16*23, 16] = k47 ++ k46) --- --- (h_ktbl24 : s0[r (.GPR 3#5) s0 + 16*24, 16] = k49 ++ k48) --- (h_ktbl25 : s0[r (.GPR 3#5) s0 + 16*25, 16] = k51 ++ k50) --- (h_ktbl26 : s0[r (.GPR 3#5) s0 + 16*26, 16] = k53 ++ k52) --- (h_ktbl27 : s0[r (.GPR 3#5) s0 + 16*27, 16] = k55 ++ k54) --- --- (h_ktbl28 : s0[r (.GPR 3#5) s0 + 16*28, 16] = k57 ++ k56) --- (h_ktbl29 : s0[r (.GPR 3#5) s0 + 16*29, 16] = k59 ++ k58) --- (h_ktbl30 : s0[r (.GPR 3#5) s0 + 16*30, 16] = k61 ++ k60) --- (h_ktbl31 : s0[r (.GPR 3#5) s0 + 16*31, 16] = k63 ++ k62) --- --- (h_ktbl32 : s0[r (.GPR 3#5) s0 + 16*32, 16] = k65 ++ k64) --- (h_ktbl33 : s0[r (.GPR 3#5) s0 + 16*33, 16] = k67 ++ k66) --- (h_ktbl34 : s0[r (.GPR 3#5) s0 + 16*34, 16] = k69 ++ k68) --- (h_ktbl35 : s0[r (.GPR 3#5) s0 + 16*35, 16] = k71 ++ k70) --- --- (h_ktbl36 : s0[r (.GPR 3#5) s0 + 16*36, 16] = k73 ++ k72) --- (h_ktbl37 : s0[r (.GPR 3#5) s0 + 16*37, 16] = k75 ++ k74) --- (h_ktbl38 : s0[r (.GPR 3#5) s0 + 16*38, 16] = k77 ++ k76) --- (h_ktbl39 : s0[r (.GPR 3#5) s0 + 16*39, 16] = k79 ++ k78) + (h_ktbl0 : s0[r (.GPR 3#5) s0, 16] = k1 ++ k0) + (h_ktbl1 : s0[r (.GPR 3#5) s0 + 16#64, 16] = k3 ++ k2) + (h_ktbl2 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64, 16] = k5 ++ k4) + (h_ktbl3 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64, 16] = k7 ++ k6) + (h_ktbl4 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k9 ++ k8) + (h_ktbl5 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k11 ++ k10) + (h_ktbl6 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k13 ++ k12) + (h_ktbl7 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k15 ++ k14) + (h_ktbl8 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k17 ++ k16) + (h_ktbl9 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k19 ++ k18) + (h_ktbl10 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k21 ++ k20) + (h_ktbl11 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k23 ++ k22) + (h_ktbl12 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k25 ++ k24) + (h_ktbl13 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k27 ++ k26) + (h_ktbl14 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k29 ++ k28) + (h_ktbl15 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k31 ++ k30) + (h_ktbl16 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k33 ++ k32) + (h_ktbl17 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k35 ++ k34) + (h_ktbl18 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k37 ++ k36) + (h_ktbl19 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k39 ++ k38) + (h_ktbl20 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k41 ++ k40) + (h_ktbl21 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k43 ++ k42) + (h_ktbl22 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k45 ++ k44) + (h_ktbl23 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k47 ++ k46) + (h_ktbl24 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k49 ++ k48) + (h_ktbl25 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k51 ++ k50) + (h_ktbl26 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k53 ++ k52) + (h_ktbl27 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k55 ++ k54) + (h_ktbl28 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k57 ++ k56) + (h_ktbl29 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k59 ++ k58) + (h_ktbl30 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k61 ++ k60) + (h_ktbl31 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k63 ++ k62) + (h_ktbl32 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k65 ++ k64) + (h_ktbl33 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k67 ++ k66) + (h_ktbl34 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k69 ++ k68) + (h_ktbl35 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k71 ++ k70) + (h_ktbl36 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k73 ++ k72) + (h_ktbl37 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k75 ++ k74) + (h_ktbl38 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k77 ++ k76) + (h_ktbl39 : s0[r (.GPR 3#5) s0 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64 + 16#64, 16] = k79 ++ k78) + + (h_hash : (h0 : SHA2.Hash) = {a, b, c, d, e, f, g, h}) + (h_ktbl : k = [k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, + k13, k14, k15, + k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, + k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, + k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, k54, + k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66, k67, + k68, k69, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79]) + (h_input : input = [[ i15, i14, i13, i12, i11, i10, i9, i8, + i7, i6, i5, i4, i3, i2, i1, i0 ]]) (h_run : sf = run 485 s0) : r .ERR sf = .None -- More generally: - ∧ r .PC sf = (if ¬r (StateField.GPR 0x2#5) s0 - 0x1#64 = 0x0#64 - then 0x126500#64 - else 0x126c94#64) - -- ∧ r (.SFP 1) sf = q1 - -- ∧ (r (.SFP 3) sf ++ r (.SFP 2) sf ++ r (.SFP 1) sf ++ r (.SFP 0) sf) = final_hash + ∧ r .PC sf = (if r (StateField.GPR 0x2#5) s0 - 0x1#64 = 0x0#64 then 0x126c94#64 else 0x126500#64) + -- KTbl Address is reset to the first address at the end of the loop. + -- ∧ r (.GPR 3) sf = r (.GPR 3) s0 + ∧ (r (.SFP 3) sf ++ r (.SFP 2) sf ++ r (.SFP 1) sf ++ r (.SFP 0) sf) = + SHA2.Hash.toBitVec + (SHA2.processBlocks_alt 80 h0 k input) := by -- Symbolic Simulation - -- sym_block 485 (block_size := 20) -- ceiling|485/20| blocks - sym_block 485 (block_sizes := [20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 5]) - -- clear_named [h_s, blocki_] - -- Reasoning - -- subst h_N - -- obtain ⟨_h_si_program, _h_si_pc, _h_si_err, _h_si_sp_aligned, - -- _h_si_sp, h_si_num_blocks, _h_si_ctx_base, - -- _h_si_input_base, _h_si_ktbl_base, - -- _h_si_ctx, _h_si_ktbl, _h_si_separate, - -- _h_si_q0, _h_si_q1, _h_si_q2, _h_si_q3, - -- _h_si_16, _h_si_17, _h_si_18, _h_si_19, - -- _h_si_20, _h_si_21, _h_si_22, _h_si_23⟩ := h_precondition - -- simp only [num_blocks] at h_si_num_blocks - -- simp [h_s485_err] - -- -- simp (config := { ground := true }) only [h_si_num_blocks, minimal_theory] - -- -- done - -- done + sym_block 485 (block_sizes := [8, + 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, + 11, 11, 11, 11, 11, 11, 11, + 11, + 5]) + + -- KTbl Address is reset to the first one at the end of the loop. + -- (FIXME) Address Normalization isn't helping here! + -- generalize r (StateField.GPR 0x3#5) s0 = x3 + -- change BitVec 64 at x3 + -- clear_named [h_s] + -- repeat rw [← @BitVec.add_assoc_symm] + -- simp (config := {ground := true}) only + -- rw [BitVec.add_sub_cancel] + simp [h_hash, h_ktbl, h_input, SHA2.Hash.toBitVec, + SHA2.processBlocks_alt, SHA2.add_hash, + SHA2.compression_alt, SHA2.compression_update, + SHA2.message_schedule_word] + simp [h_ktbl0, + h_ktbl1, + h_ktbl2, + h_ktbl3, + h_ktbl4, + h_ktbl5, + h_ktbl6, + h_ktbl7, + h_ktbl8, + h_ktbl9, + h_ktbl10, + h_ktbl11, + h_ktbl12, + h_ktbl13, + h_ktbl14, + h_ktbl15, + h_ktbl16, + h_ktbl17, + h_ktbl18, + h_ktbl19, + h_ktbl20, + h_ktbl21, + h_ktbl22, + h_ktbl23, + h_ktbl24, + h_ktbl25, + h_ktbl26, + h_ktbl27, + h_ktbl28, + h_ktbl29, + h_ktbl30, + h_ktbl31, + h_ktbl32, + h_ktbl33, + h_ktbl34, + h_ktbl35, + h_ktbl36, + h_ktbl37, + h_ktbl38, + h_ktbl39, + h_q0, + h_q1, + h_q2, + h_q3, + h_q16, + h_q17, + h_q18, + h_q19, + h_q20, + h_q21, + h_q22, + h_q23] + simp [extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64] + -- Make sure conclusion only depends on the variables we introduced. + clear_named [h_, blocki] + clear_named [s] + clear input k h0 N SP CtxBase InputBase + sorry + done diff --git a/Proofs/SHA512/SHA512LoopBlocks.lean b/Proofs/SHA512/SHA512LoopBlocks.lean index 5044ec9e..33082ff7 100644 --- a/Proofs/SHA512/SHA512LoopBlocks.lean +++ b/Proofs/SHA512/SHA512LoopBlocks.lean @@ -11,15659 +11,5533 @@ open BitVec namespace SHA512 --- Prove block lemmas for the Loop. +theorem extractLsb'_append_swap (x y : BitVec 128) : + (x ++ y).extractLsb' 64 128 = + BitVec.extractLsb' 0 64 x ++ BitVec.extractLsb' 64 64 y := by + bv_decide --- set_option pp.maxSteps 50000 in --- theorem program.blocki_eq_0x126550 {s : ArmState} - -- (h_program : s.program = program) - -- (h_pc : r StateField.PC s = 0x126550#64) - -- (h_err : r StateField.ERR s = StateError.None) : - -- run 24 s = - -- xxxx - -- := by - -- generalize h_run : run 24 s = sf - -- replace h_run := h_run.symm - -- sym_n 24 - -- simp (config := {decide := true}) only - -- [h_step_23, h_step_22, h_step_21, h_step_20, - -- h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - -- h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - -- h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, - -- h_step_4, h_step_3, h_step_2, h_step_1, - -- state_simp_rules, bitvec_rules, minimal_theory, - -- sha512_message_schedule_rule, sha512h2_rule, - -- sha512h_rule_1, sha512h_rule_2] - -- at h_step_24 - -- exact h_step_24 - -- done - -- sorry +theorem extractLsb'_append_left_64 (x y : BitVec 64) : + (x ++ y).extractLsb' 64 64 = x := by + rw [extractLsb'_append_left] + +theorem extractLsb'_append_right_64 (x y : BitVec 64) : + (x ++ y).extractLsb' 0 64 = y := by + rw [extractLsb'_append_right] + +theorem extractLsb'_add_64 (x y : BitVec 128) : + (x + y).extractLsb' 0 64 = + (BitVec.extractLsb' 0 64 x) + (BitVec.extractLsb' 0 64 y) := by + bv_decide /- +Loop Body: + +1. Prelude: 8 instructions (0x126500#64) + ld1 + subs + sub + mov + mov + mov + mov + csel + +2. The following sequence of 12 instructions are repeated 32 times: + (Starting 0x126520#64) + add + ld1 + ext + ext + ext + add + sha512su0 + ext + sha512h + sha512su1 + add + sha512h2 + +3. The following sequence of 11 instructions are repeated 7 times: + (Starting 0x126b20#64) + ld1 + add + ld1 + ext + ext + ext + add + sha512h + rev64 + add + sha512h2 + +4. The following sequence of 11 instructions appears once: + (Starting 0x126c54#64) + sub + add + ld1 + ext + ext + ext + add + sha512h + rev64 + add + sha512h2 + + +5. Epilogue: + (Starting 0x126c80#64) + add + add + add + add + cbnz +-/ + +-- Prelude set_option trace.Tactic.prune_updates true in -theorem program.blocki_eq_0x126500_1 {s : ArmState} +-- set_option trace.Tactic.prune_updates.answer true in +-- set_option trace.Meta.isDefEq true in +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126500 {s : ArmState} (h_program : s.program = program) (h_pc : r StateField.PC s = 0x126500#64) (h_err : r StateField.ERR s = StateError.None) : - run 8 s = (w .PC (0x126520#64) (w (.GPR 0x01#5) (if - ¬(AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 0x1#1).snd.z = 0x1#1 then + run 8 s = + w (StateField.GPR 0x1#5) + (if ¬(AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 0x1#1).snd.z = 0x1#1 then r (StateField.GPR 0x1#5) s - else - r (StateField.GPR 0x1#5) s - - 0x80#64) (w (.GPR 0x02#5) (r (StateField.GPR 0x2#5) s - - 0x1#64) (w (.GPR 0x03#5) (r (StateField.GPR 0x3#5) s + - 0x10#64) (w (.GPR 0x04#5) (r (StateField.GPR 0x1#5) s - - 0x80#64) (w (.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) - s) (w (.SFP 0x1a#5) (r (StateField.SFP 0x0#5) - s) (w (.SFP 0x1b#5) (r (StateField.SFP 0x1#5) - s) (w (.SFP 0x1c#5) (r (StateField.SFP 0x2#5) - s) (w (.SFP 0x1d#5) (r (StateField.SFP 0x3#5) - s) (w (.FLAG N) ((AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 - 0x1#1).snd.n) (w (.FLAG Z) ((AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 - 0x1#1).snd.z) (w (.FLAG C) ((AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 - 0x1#1).snd.c) (w (.FLAG V) ((AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 - 0x1#1).snd.v) s)))))))))))))) + else r (StateField.GPR 0x1#5) s - 0x80#64) + (w StateField.PC 0x126520#64 + (w (StateField.SFP 0x1d#5) (r (StateField.SFP 0x3#5) s) + (w StateField.PC 0x126518#64 + (w (StateField.SFP 0x1c#5) (r (StateField.SFP 0x2#5) s) + (w StateField.PC 0x126514#64 + (w (StateField.SFP 0x1b#5) (r (StateField.SFP 0x1#5) s) + (w StateField.PC 0x126510#64 + (w (StateField.SFP 0x1a#5) (r (StateField.SFP 0x0#5) s) + (w (StateField.GPR 0x4#5) (r (StateField.GPR 0x1#5) s - 0x80#64) + (w StateField.PC 0x12650c#64 + (w (StateField.GPR 0x2#5) (r (StateField.GPR 0x2#5) s - 0x1#64) + (w (StateField.FLAG PFlag.V) + (AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 0x1#1).snd.v + (w (StateField.FLAG PFlag.C) + (AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 0x1#1).snd.c + (w (StateField.FLAG PFlag.Z) + (AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 0x1#1).snd.z + (w (StateField.FLAG PFlag.N) + (AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 0x1#1).snd.n + (w StateField.PC 0x126508#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + s)))))))))))))))))) := by generalize h_run : run 8 s = sf replace h_run := h_run.symm sym_n 8 simp (config := {decide := true}) only - [h_step_7, h_step_6, h_step_5, + [h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + -- w_of_w_commute, w_of_w_shadow, state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] at h_step_8 -- prune_updates h_step_8 - -- exact h_step_20 - -- done - sorry --/ + exact h_step_8 + done --- #eval ((Cfg.create' (0x126500#64) (0x126500#64 + 20*4) SHA512.program).toOption.get!).maybe_modified_regs -#time -theorem program.blocki_eq_0x126500 {s : ArmState} +-- #1/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126520 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126500#64) + (h_pc : r StateField.PC s = 0x126520#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w (StateField.SFP 0x3#5) - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) ++ - (SHA2.compression_update_t2 + run 12 s = + w (StateField.SFP 0x3#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + + SHA2.compression_update_t2 (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))))) + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)))) (w StateField.PC 0x126550#64 (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) - 0x0#128) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) (w (StateField.SFP 0x10#5) (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) ++ SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) (w StateField.PC 0x126548#64 (w (StateField.SFP 0x3#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) (w StateField.PC 0x126544#64 (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) (w (StateField.SFP 0x10#5) (DPSFP.sha512su0 (r (StateField.SFP 0x11#5) s) (r (StateField.SFP 0x10#5) s)) (w StateField.PC 0x12653c#64 (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x10#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x10#5) s) - 0x0#128)) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) (w StateField.PC 0x126534#64 (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (w StateField.PC 0x126530#64 (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (w StateField.PC 0x12652c#64 (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x10#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x10#5) s) 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) (w StateField.PC 0x126528#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x19#5) - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (w StateField.PC 0x126524#64 (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x10#5) s) 0x0#128) - (w (StateField.GPR 0x1#5) - (if - ¬(AddWithCarry (r (StateField.GPR 0x2#5) s) 0xfffffffffffffffe#64 - 0x1#1).snd.z = - 0x1#1 then - r (StateField.GPR 0x1#5) s - else r (StateField.GPR 0x1#5) s - 0x80#64) - (w StateField.PC 0x126520#64 - (w (StateField.SFP 0x1d#5) (r (StateField.SFP 0x3#5) s) - (w StateField.PC 0x126518#64 - (w (StateField.SFP 0x1c#5) (r (StateField.SFP 0x2#5) s) - (w StateField.PC 0x126514#64 - (w (StateField.SFP 0x1b#5) (r (StateField.SFP 0x1#5) s) - (w StateField.PC 0x126510#64 - (w (StateField.SFP 0x1a#5) (r (StateField.SFP 0x0#5) s) - (w (StateField.GPR 0x4#5) - (r (StateField.GPR 0x1#5) s - 0x80#64) - (w StateField.PC 0x12650c#64 - (w (StateField.GPR 0x2#5) - (r (StateField.GPR 0x2#5) s - 0x1#64) - (w (StateField.FLAG PFlag.V) - (AddWithCarry (r (StateField.GPR 0x2#5) s) - 0xfffffffffffffffe#64 0x1#1).snd.v - (w (StateField.FLAG PFlag.C) - (AddWithCarry (r (StateField.GPR 0x2#5) s) - 0xfffffffffffffffe#64 0x1#1).snd.c - (w (StateField.FLAG PFlag.Z) - (AddWithCarry (r (StateField.GPR 0x2#5) s) - 0xfffffffffffffffe#64 0x1#1).snd.z - (w (StateField.FLAG PFlag.N) - (AddWithCarry (r (StateField.GPR 0x2#5) s) - 0xfffffffffffffffe#64 0x1#1).snd.n - (w StateField.PC 0x126508#64 - (w (StateField.GPR 0x3#5) - (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 - (r (StateField.GPR 0x3#5) s) s) - s)))))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - -- prune_updates h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule + ] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done -#time +-- #2/32 +set_option pp.maxSteps 50000 in theorem program.blocki_eq_0x126550 {s : ArmState} (h_program : s.program = program) (h_pc : r StateField.PC s = 0x126550#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x1265a0#64 - (w (StateField.SFP 0x7#5) (extractLsb' 64 128 (r (StateField.SFP 0x17#5) s ++ r (StateField.SFP 0x16#5) s)) - (w (StateField.SFP 0x12#5) (DPSFP.sha512su0 (r (StateField.SFP 0x13#5) s) (r (StateField.SFP 0x12#5) s)) - (w StateField.PC 0x12659c#64 - (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x12#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x12#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126594#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) - (w StateField.PC 0x126590#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) - 0x0#128)) - (w StateField.PC 0x12658c#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x12#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x12#5) s) 0x0#128)) - (w StateField.PC 0x126588#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x126584#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x12#5) s) - 0x0#128) - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))))) - (w StateField.PC 0x126580#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) - 0x0#128) - (w (StateField.SFP 0x11#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (w StateField.PC 0x126578#64 - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) - (w StateField.PC 0x126574#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s)) - (w (StateField.SFP 0x11#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x12#5) s) - (r (StateField.SFP 0x11#5) s)) - (w StateField.PC 0x12656c#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126564#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (w StateField.PC 0x126560#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x12655c#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128)) - (w StateField.PC 0x126558#64 - (w (StateField.GPR 0x3#5) - (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 - (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126554#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128) - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)))) + (w StateField.PC 0x126580#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) + (w (StateField.SFP 0x11#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x126578#64 + (w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x126574#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (w (StateField.SFP 0x11#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x12#5) s) (r (StateField.SFP 0x11#5) s)) + (w StateField.PC 0x12656c#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) + (w StateField.PC 0x126564#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126560#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x12655c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x126558#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126554#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done - -#time -theorem program.blocki_eq_0x1265a0 {s : ArmState} +-- #3/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126580 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x1265a0#64) + (h_pc : r StateField.PC s = 0x126580#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x1265f0#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) - 0x0#128)) - (w StateField.PC 0x1265ec#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x14#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x14#5) s) 0x0#128)) - (w StateField.PC 0x1265e8#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x1265e4#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x14#5) s) 0x0#128) - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))))) - (w StateField.PC 0x1265e0#64 - (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) - 0x0#128) - (w (StateField.SFP 0x13#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x11#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x11#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x12#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (w StateField.PC 0x1265d8#64 - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) - (w StateField.PC 0x1265d4#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s)) - (w (StateField.SFP 0x13#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x14#5) s) (r (StateField.SFP 0x13#5) s)) - (w StateField.PC 0x1265cc#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x13#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x13#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x1265c4#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) - (w StateField.PC 0x1265c0#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128)) - (w StateField.PC 0x1265bc#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x13#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x13#5) s) - 0x0#128)) - (w StateField.PC 0x1265b8#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x1265b4#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x13#5) s) 0x0#128) - (w (StateField.SFP 0x4#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)))) - (w StateField.PC 0x1265b0#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128) - (w (StateField.SFP 0x12#5) - (DPSFP.sha512su1 (r (StateField.SFP 0x11#5) s) - (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x12#5) s)) - (w StateField.PC 0x1265a8#64 - (w (StateField.SFP 0x4#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x1265a4#64 - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)))) + (w StateField.PC 0x1265b0#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) + (w (StateField.SFP 0x12#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x1265a8#64 + (w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x1265a4#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (w (StateField.SFP 0x12#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x13#5) s) (r (StateField.SFP 0x12#5) s)) + (w StateField.PC 0x12659c#64 + (w (StateField.SFP 0x4#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) + (w StateField.PC 0x126594#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x126590#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x12658c#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126588#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126584#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done - -set_option pp.maxSteps 8000 in -#time -theorem program.blocki_eq_0x1265f0 {s : ArmState} +-- #4/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x1265b0 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x1265f0#64) + (h_pc : r StateField.PC s = 0x1265b0#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w (StateField.SFP 0x3#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + run 12 s = + w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)))) + (w StateField.PC 0x1265e0#64 + (w (StateField.SFP 0x3#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) + (w (StateField.SFP 0x13#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x1265d8#64 + (w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x1265d4#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (w (StateField.SFP 0x13#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x14#5) s) (r (StateField.SFP 0x13#5) s)) + (w StateField.PC 0x1265cc#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) + (w StateField.PC 0x1265c4#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x1265c0#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x1265bc#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x1265b8#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x1265b4#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + +-- #5/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x1265e0 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x1265e0#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)))) + (w StateField.PC 0x126610#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) + (w (StateField.SFP 0x14#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126608#64 + (w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))))) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126604#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (w (StateField.SFP 0x14#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x15#5) s) (r (StateField.SFP 0x14#5) s)) + (w StateField.PC 0x1265fc#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) + (w StateField.PC 0x1265f4#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x1265f0#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x1265ec#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x1265e8#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x1265e4#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + +-- #6/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126610 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126610#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x3#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)))) (w StateField.PC 0x126640#64 (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) (w (StateField.SFP 0x15#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) (w StateField.PC 0x126638#64 (w (StateField.SFP 0x3#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) (w StateField.PC 0x126634#64 (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) (w (StateField.SFP 0x15#5) (DPSFP.sha512su0 (r (StateField.SFP 0x16#5) s) (r (StateField.SFP 0x15#5) s)) (w StateField.PC 0x12662c#64 (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128)) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) (w StateField.PC 0x126624#64 (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (w StateField.PC 0x126620#64 (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (w StateField.PC 0x12661c#64 (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) (w StateField.PC 0x126618#64 (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (w StateField.PC 0x126614#64 (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x15#5) s) 0x0#128) - (w (StateField.SFP 0x0#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)))) - (w StateField.PC 0x126610#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - 0x0#128) - (w (StateField.SFP 0x14#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x11#5) s ++ - r (StateField.SFP 0x10#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x11#5) s ++ - r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (w StateField.PC 0x126608#64 - (w (StateField.SFP 0x0#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - (w StateField.PC 0x126604#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x11#5) s ++ - r (StateField.SFP 0x10#5) s)) - (w (StateField.SFP 0x14#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x15#5) s) - (r (StateField.SFP 0x14#5) s)) - (w StateField.PC 0x1265fc#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128) - (w StateField.PC 0x1265f4#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - s)))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done --- #eval 0x1265f0#64 + 20*4 - -#time +-- #7/32 +set_option pp.maxSteps 50000 in theorem program.blocki_eq_0x126640 {s : ArmState} (h_program : s.program = program) (h_pc : r StateField.PC s = 0x126640#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x126690#64 - (w (StateField.SFP 0x7#5) (extractLsb' 64 128 (r (StateField.SFP 0x14#5) s ++ r (StateField.SFP 0x13#5) s)) - (w (StateField.SFP 0x17#5) (DPSFP.sha512su0 (r (StateField.SFP 0x10#5) s) (r (StateField.SFP 0x17#5) s)) - (w StateField.PC 0x12668c#64 - (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x17#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x17#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126684#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) - (w StateField.PC 0x126680#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) - 0x0#128)) - (w StateField.PC 0x12667c#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x17#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x17#5) s) 0x0#128)) - (w StateField.PC 0x126678#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x126674#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x17#5) s) - 0x0#128) - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))))) - (w StateField.PC 0x126670#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) - 0x0#128) - (w (StateField.SFP 0x16#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (w StateField.PC 0x126668#64 - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) - (w StateField.PC 0x126664#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s)) - (w (StateField.SFP 0x16#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x17#5) s) - (r (StateField.SFP 0x16#5) s)) - (w StateField.PC 0x12665c#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x16#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x16#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126654#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (w StateField.PC 0x126650#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x12664c#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x16#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x16#5) s) 0x0#128)) - (w StateField.PC 0x126648#64 - (w (StateField.GPR 0x3#5) - (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x19#5) - (read_mem_bytes 16 - (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126644#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x16#5) s) 0x0#128) - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)))) + (w StateField.PC 0x126670#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) + (w (StateField.SFP 0x16#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x126668#64 + (w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x126664#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (w (StateField.SFP 0x16#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x17#5) s) (r (StateField.SFP 0x16#5) s)) + (w StateField.PC 0x12665c#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) + (w StateField.PC 0x126654#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126650#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x12664c#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x126648#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126644#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done ---#eval 0x126640#64 + 20*4 - -#time -theorem program.blocki_eq_0x126690 {s : ArmState} +-- #8/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126670 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126690#64) + (h_pc : r StateField.PC s = 0x126670#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x1266e0#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) - 0x0#128)) - (w StateField.PC 0x1266dc#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x11#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x11#5) s) 0x0#128)) - (w StateField.PC 0x1266d8#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x1266d4#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x11#5) s) 0x0#128) - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))))) - (w StateField.PC 0x1266d0#64 - (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) - 0x0#128) - (w (StateField.SFP 0x10#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x16#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x16#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x17#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (w StateField.PC 0x1266c8#64 - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) - (w StateField.PC 0x1266c4#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s)) - (w (StateField.SFP 0x10#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x11#5) s) (r (StateField.SFP 0x10#5) s)) - (w StateField.PC 0x1266bc#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x10#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x10#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x1266b4#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) - (w StateField.PC 0x1266b0#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128)) - (w StateField.PC 0x1266ac#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x10#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x10#5) s) - 0x0#128)) - (w StateField.PC 0x1266a8#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x19#5) - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x1266a4#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x10#5) s) 0x0#128) - (w (StateField.SFP 0x4#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)))) - (w StateField.PC 0x1266a0#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128) - (w (StateField.SFP 0x17#5) - (DPSFP.sha512su1 (r (StateField.SFP 0x16#5) s) - (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x17#5) s)) - (w StateField.PC 0x126698#64 - (w (StateField.SFP 0x4#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x126694#64 - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)))) + (w StateField.PC 0x1266a0#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) + (w (StateField.SFP 0x17#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (w StateField.PC 0x126698#64 + (w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) + (w StateField.PC 0x126694#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (w (StateField.SFP 0x17#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x10#5) s) (r (StateField.SFP 0x17#5) s)) + (w StateField.PC 0x12668c#64 + (w (StateField.SFP 0x4#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) + (w StateField.PC 0x126684#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x126680#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x12667c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) + (w StateField.PC 0x126678#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126674#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done --- #eval 0x126690#64 + 20*4 - -set_option pp.maxSteps 8000 in -#time -theorem program.blocki_eq_0x1266e0 {s : ArmState} +-- #9/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x1266a0 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x1266e0#64) + (h_pc : r StateField.PC s = 0x1266a0#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w (StateField.SFP 0x3#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))))) - (w StateField.PC 0x126730#64 - (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + run 12 s = + w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)))) + (w StateField.PC 0x1266d0#64 + (w (StateField.SFP 0x3#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) - 0x0#128) - (w (StateField.SFP 0x12#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x17#5) s ++ r (StateField.SFP 0x16#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x17#5) s ++ r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (w StateField.PC 0x126728#64 - (w (StateField.SFP 0x3#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) + (w (StateField.SFP 0x10#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x1266c8#64 + (w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) - (w StateField.PC 0x126724#64 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x1266c4#64 (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x17#5) s ++ r (StateField.SFP 0x16#5) s)) - (w (StateField.SFP 0x12#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x13#5) s) (r (StateField.SFP 0x12#5) s)) - (w StateField.PC 0x12671c#64 - (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x12#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x12#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126714#64 + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (w (StateField.SFP 0x10#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x11#5) s) (r (StateField.SFP 0x10#5) s)) + (w StateField.PC 0x1266bc#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) + (w StateField.PC 0x1266b4#64 (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) - (w StateField.PC 0x126710#64 + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x1266b0#64 (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128)) - (w StateField.PC 0x12670c#64 + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x1266ac#64 (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x12#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x12#5) s) 0x0#128)) - (w StateField.PC 0x126708#64 + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x1266a8#64 (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126704#64 + (w StateField.PC 0x1266a4#64 (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x12#5) s) 0x0#128) - (w (StateField.SFP 0x0#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)))) - (w StateField.PC 0x126700#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)) - 0x0#128) - (w (StateField.SFP 0x11#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x16#5) s ++ - r (StateField.SFP 0x15#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x16#5) s ++ - r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (w StateField.PC 0x1266f8#64 - (w (StateField.SFP 0x0#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)) - (w StateField.PC 0x1266f4#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x16#5) s ++ - r (StateField.SFP 0x15#5) s)) - (w (StateField.SFP 0x11#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x12#5) s) - (r (StateField.SFP 0x11#5) s)) - (w StateField.PC 0x1266ec#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128) - (w StateField.PC 0x1266e4#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - s)))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done --- #eval 0x1266e0#64 + 20*4 - -#time -theorem program.blocki_eq_0x126730 {s : ArmState} +-- #10/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x1266d0 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126730#64) + (h_pc : r StateField.PC s = 0x1266d0#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x126780#64 - (w (StateField.SFP 0x7#5) (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s)) - (w (StateField.SFP 0x14#5) (DPSFP.sha512su0 (r (StateField.SFP 0x15#5) s) (r (StateField.SFP 0x14#5) s)) - (w StateField.PC 0x12677c#64 - (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x14#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x14#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126774#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) - (w StateField.PC 0x126770#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) - 0x0#128)) - (w StateField.PC 0x12676c#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x14#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x14#5) s) 0x0#128)) - (w StateField.PC 0x126768#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x126764#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x14#5) s) - 0x0#128) - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))))) - (w StateField.PC 0x126760#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) - 0x0#128) - (w (StateField.SFP 0x13#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (w StateField.PC 0x126758#64 - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) - (w StateField.PC 0x126754#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s)) - (w (StateField.SFP 0x13#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x14#5) s) - (r (StateField.SFP 0x13#5) s)) - (w StateField.PC 0x12674c#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x13#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x13#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126744#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (w StateField.PC 0x126740#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x12673c#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x13#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x13#5) s) 0x0#128)) - (w StateField.PC 0x126738#64 - (w (StateField.GPR 0x3#5) - (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 - (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126734#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x13#5) s) 0x0#128) - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)))) + (w StateField.PC 0x126700#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) + (w (StateField.SFP 0x11#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x1266f8#64 + (w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x1266f4#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (w (StateField.SFP 0x11#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x12#5) s) (r (StateField.SFP 0x11#5) s)) + (w StateField.PC 0x1266ec#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) + (w StateField.PC 0x1266e4#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x1266e0#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x1266dc#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x1266d8#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x1266d4#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done --- #eval 0x126730#64 + 20*4 +-- #11/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126700 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126700#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x3#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)))) + (w StateField.PC 0x126730#64 + (w (StateField.SFP 0x4#5) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) + (w (StateField.SFP 0x12#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126728#64 + (w (StateField.SFP 0x3#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126724#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (w (StateField.SFP 0x12#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x13#5) s) (r (StateField.SFP 0x12#5) s)) + (w StateField.PC 0x12671c#64 + (w (StateField.SFP 0x3#5) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) + (w StateField.PC 0x126714#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x126710#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x12670c#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126708#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126704#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done -#time -theorem program.blocki_eq_0x126780 {s : ArmState} +-- #12/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126730 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126780#64) + (h_pc : r StateField.PC s = 0x126730#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x1267d0#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) - 0x0#128)) - (w StateField.PC 0x1267cc#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x16#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x16#5) s) 0x0#128)) - (w StateField.PC 0x1267c8#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x1267c4#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x16#5) s) 0x0#128) - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))))) - (w StateField.PC 0x1267c0#64 - (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) - 0x0#128) - (w (StateField.SFP 0x15#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x13#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x13#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x14#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (w StateField.PC 0x1267b8#64 - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) - (w StateField.PC 0x1267b4#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s)) - (w (StateField.SFP 0x15#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x16#5) s) (r (StateField.SFP 0x15#5) s)) - (w StateField.PC 0x1267ac#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x15#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x15#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x1267a4#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) - (w StateField.PC 0x1267a0#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128)) - (w StateField.PC 0x12679c#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x15#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x15#5) s) - 0x0#128)) - (w StateField.PC 0x126798#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126794#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128) - (w (StateField.SFP 0x4#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)))) - (w StateField.PC 0x126790#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128) - (w (StateField.SFP 0x14#5) - (DPSFP.sha512su1 (r (StateField.SFP 0x13#5) s) - (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x14#5) s)) - (w StateField.PC 0x126788#64 - (w (StateField.SFP 0x4#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x126784#64 - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)))) + (w StateField.PC 0x126760#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) + (w (StateField.SFP 0x13#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x126758#64 + (w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x126754#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (w (StateField.SFP 0x13#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x14#5) s) (r (StateField.SFP 0x13#5) s)) + (w StateField.PC 0x12674c#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) + (w StateField.PC 0x126744#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126740#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x12673c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x126738#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126734#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done --- #eval 0x126780#64 + 20*4 -set_option pp.maxSteps 8000 in -#time -theorem program.blocki_eq_0x1267d0 {s : ArmState} +-- #13/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126760 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x1267d0#64) + (h_pc : r StateField.PC s = 0x126760#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w (StateField.SFP 0x3#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + run 12 s = + w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)))) + (w StateField.PC 0x126790#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) + (w (StateField.SFP 0x14#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126788#64 + (w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126784#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (w (StateField.SFP 0x14#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x15#5) s) (r (StateField.SFP 0x14#5) s)) + (w StateField.PC 0x12677c#64 + (w (StateField.SFP 0x4#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) + (w StateField.PC 0x126774#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x126770#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x12676c#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126768#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126764#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + +-- #14/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126790 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126790#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)))) + (w StateField.PC 0x1267c0#64 + (w (StateField.SFP 0x3#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) + (w (StateField.SFP 0x15#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x1267b8#64 + (w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x1267b4#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (w (StateField.SFP 0x15#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x16#5) s) (r (StateField.SFP 0x15#5) s)) + (w StateField.PC 0x1267ac#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) + (w StateField.PC 0x1267a4#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x1267a0#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x12679c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x126798#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126794#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + + +-- #15/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x1267c0 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x1267c0#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)))) + (w StateField.PC 0x1267f0#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) + (w (StateField.SFP 0x16#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x1267e8#64 + (w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))))) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x1267e4#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (w (StateField.SFP 0x16#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x17#5) s) (r (StateField.SFP 0x16#5) s)) + (w StateField.PC 0x1267dc#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) + (w StateField.PC 0x1267d4#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x1267d0#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x1267cc#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x1267c8#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x1267c4#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + + +-- #16/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x1267f0 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x1267f0#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x3#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)))) (w StateField.PC 0x126820#64 (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) (w (StateField.SFP 0x17#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x14#5) s ++ r (StateField.SFP 0x13#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x14#5) s ++ r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) (w StateField.PC 0x126818#64 (w (StateField.SFP 0x3#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) (w StateField.PC 0x126814#64 (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x14#5) s ++ r (StateField.SFP 0x13#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) (w (StateField.SFP 0x17#5) (DPSFP.sha512su0 (r (StateField.SFP 0x10#5) s) (r (StateField.SFP 0x17#5) s)) (w StateField.PC 0x12680c#64 (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128)) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) (w StateField.PC 0x126804#64 (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (w StateField.PC 0x126800#64 (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (w StateField.PC 0x1267fc#64 (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) (w StateField.PC 0x1267f8#64 (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (w StateField.PC 0x1267f4#64 (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x17#5) s) 0x0#128) - (w (StateField.SFP 0x0#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)))) - (w StateField.PC 0x1267f0#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - 0x0#128) - (w (StateField.SFP 0x16#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x13#5) s ++ - r (StateField.SFP 0x12#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x13#5) s ++ - r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (w StateField.PC 0x1267e8#64 - (w (StateField.SFP 0x0#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - (w StateField.PC 0x1267e4#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x13#5) s ++ - r (StateField.SFP 0x12#5) s)) - (w (StateField.SFP 0x16#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x17#5) s) - (r (StateField.SFP 0x16#5) s)) - (w StateField.PC 0x1267dc#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128) - (w StateField.PC 0x1267d4#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - s)))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done --- #eval 0x1267d0#64 + 20*4 -#time +-- #17/32 +set_option pp.maxSteps 50000 in theorem program.blocki_eq_0x126820 {s : ArmState} (h_program : s.program = program) (h_pc : r StateField.PC s = 0x126820#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x126870#64 - (w (StateField.SFP 0x7#5) (extractLsb' 64 128 (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s)) - (w (StateField.SFP 0x11#5) (DPSFP.sha512su0 (r (StateField.SFP 0x12#5) s) (r (StateField.SFP 0x11#5) s)) - (w StateField.PC 0x12686c#64 - (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x11#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x11#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126864#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) - (w StateField.PC 0x126860#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) - 0x0#128)) - (w StateField.PC 0x12685c#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x11#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x11#5) s) 0x0#128)) - (w StateField.PC 0x126858#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x126854#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x11#5) s) - 0x0#128) - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))))) - (w StateField.PC 0x126850#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) - 0x0#128) - (w (StateField.SFP 0x10#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (w StateField.PC 0x126848#64 - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) - (w StateField.PC 0x126844#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s)) - (w (StateField.SFP 0x10#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x11#5) s) - (r (StateField.SFP 0x10#5) s)) - (w StateField.PC 0x12683c#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x10#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x10#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126834#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (w StateField.PC 0x126830#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x12682c#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x10#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x10#5) s) 0x0#128)) - (w StateField.PC 0x126828#64 - (w (StateField.GPR 0x3#5) - (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x19#5) - (read_mem_bytes 16 - (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126824#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x10#5) s) 0x0#128) - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)))) + (w StateField.PC 0x126850#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) + (w (StateField.SFP 0x10#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x126848#64 + (w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x126844#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (w (StateField.SFP 0x10#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x11#5) s) (r (StateField.SFP 0x10#5) s)) + (w StateField.PC 0x12683c#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) + (w StateField.PC 0x126834#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126830#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x12682c#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x126828#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126824#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + +-- #18/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126850 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126850#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)))) + (w StateField.PC 0x126880#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) + (w (StateField.SFP 0x11#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x126878#64 + (w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x126874#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (w (StateField.SFP 0x11#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x12#5) s) (r (StateField.SFP 0x11#5) s)) + (w StateField.PC 0x12686c#64 + (w (StateField.SFP 0x4#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) + (w StateField.PC 0x126864#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x126860#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x12685c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x126858#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126854#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + +-- #19/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126880 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126880#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)))) + (w StateField.PC 0x1268b0#64 + (w (StateField.SFP 0x3#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) + (w (StateField.SFP 0x12#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x1268a8#64 + (w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x1268a4#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (w (StateField.SFP 0x12#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x13#5) s) (r (StateField.SFP 0x12#5) s)) + (w StateField.PC 0x12689c#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) + (w StateField.PC 0x126894#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x126890#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x12688c#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126888#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126884#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done -#time -theorem program.blocki_eq_0x126870 {s : ArmState} + +-- #20/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x1268b0 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126870#64) + (h_pc : r StateField.PC s = 0x1268b0#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = - w StateField.PC 0x1268c0#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) - 0x0#128)) - (w StateField.PC 0x1268bc#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x13#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x13#5) s) 0x0#128)) - (w StateField.PC 0x1268b8#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x1268b4#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x13#5) s) 0x0#128) - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))))) - (w StateField.PC 0x1268b0#64 - (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) - 0x0#128) - (w (StateField.SFP 0x12#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x10#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x17#5) s ++ r (StateField.SFP 0x16#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x10#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x11#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x17#5) s ++ r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (w StateField.PC 0x1268a8#64 - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) - (w StateField.PC 0x1268a4#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x17#5) s ++ r (StateField.SFP 0x16#5) s)) - (w (StateField.SFP 0x12#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x13#5) s) (r (StateField.SFP 0x12#5) s)) - (w StateField.PC 0x12689c#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x12#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x12#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126894#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) - (w StateField.PC 0x126890#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128)) - (w StateField.PC 0x12688c#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x12#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x12#5) s) - 0x0#128)) - (w StateField.PC 0x126888#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x19#5) - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126884#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x12#5) s) 0x0#128) - (w (StateField.SFP 0x4#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)))) - (w StateField.PC 0x126880#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128) - (w (StateField.SFP 0x11#5) - (DPSFP.sha512su1 (r (StateField.SFP 0x10#5) s) - (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x11#5) s)) - (w StateField.PC 0x126878#64 - (w (StateField.SFP 0x4#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x126874#64 - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)))) + (w StateField.PC 0x1268e0#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) + (w (StateField.SFP 0x13#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x1268d8#64 + (w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x1268d4#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (w (StateField.SFP 0x13#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x14#5) s) (r (StateField.SFP 0x13#5) s)) + (w StateField.PC 0x1268cc#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) + (w StateField.PC 0x1268c4#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x1268c0#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x1268bc#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x1268b8#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x1268b4#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done -set_option pp.maxSteps 8000 in -#time -theorem program.blocki_eq_0x1268c0 {s : ArmState} + +-- #21/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x1268e0 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x1268c0#64) + (h_pc : r StateField.PC s = 0x1268e0#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w (StateField.SFP 0x3#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + run 12 s = + w (StateField.SFP 0x3#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))))) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)))) (w StateField.PC 0x126910#64 (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) (w (StateField.SFP 0x14#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) (w StateField.PC 0x126908#64 (w (StateField.SFP 0x3#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) (w StateField.PC 0x126904#64 (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) (w (StateField.SFP 0x14#5) (DPSFP.sha512su0 (r (StateField.SFP 0x15#5) s) (r (StateField.SFP 0x14#5) s)) (w StateField.PC 0x1268fc#64 (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x14#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x14#5) s) 0x0#128)) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) (w StateField.PC 0x1268f4#64 (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (w StateField.PC 0x1268f0#64 (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (w StateField.PC 0x1268ec#64 (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x14#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x14#5) s) 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) (w StateField.PC 0x1268e8#64 (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (w StateField.PC 0x1268e4#64 (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x14#5) s) 0x0#128) - (w (StateField.SFP 0x0#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)))) - (w StateField.PC 0x1268e0#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)) - 0x0#128) - (w (StateField.SFP 0x13#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x10#5) s ++ - r (StateField.SFP 0x17#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x10#5) s ++ - r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (w StateField.PC 0x1268d8#64 - (w (StateField.SFP 0x0#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)) - (w StateField.PC 0x1268d4#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x10#5) s ++ - r (StateField.SFP 0x17#5) s)) - (w (StateField.SFP 0x13#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x14#5) s) - (r (StateField.SFP 0x13#5) s)) - (w StateField.PC 0x1268cc#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128) - (w StateField.PC 0x1268c4#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - s)))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done -#time + +-- #22/32 +set_option pp.maxSteps 50000 in theorem program.blocki_eq_0x126910 {s : ArmState} (h_program : s.program = program) (h_pc : r StateField.PC s = 0x126910#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x126960#64 - (w (StateField.SFP 0x7#5) (extractLsb' 64 128 (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s)) - (w (StateField.SFP 0x16#5) (DPSFP.sha512su0 (r (StateField.SFP 0x17#5) s) (r (StateField.SFP 0x16#5) s)) - (w StateField.PC 0x12695c#64 - (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x16#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x16#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126954#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) - (w StateField.PC 0x126950#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) - 0x0#128)) - (w StateField.PC 0x12694c#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x16#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x16#5) s) 0x0#128)) - (w StateField.PC 0x126948#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x126944#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x16#5) s) - 0x0#128) - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))))) - (w StateField.PC 0x126940#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) - 0x0#128) - (w (StateField.SFP 0x15#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (w StateField.PC 0x126938#64 - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) - (w StateField.PC 0x126934#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s)) - (w (StateField.SFP 0x15#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x16#5) s) - (r (StateField.SFP 0x15#5) s)) - (w StateField.PC 0x12692c#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126924#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (w StateField.PC 0x126920#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x12691c#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128)) - (w StateField.PC 0x126918#64 - (w (StateField.GPR 0x3#5) - (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 - (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126914#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128) - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)))) + (w StateField.PC 0x126940#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) + (w (StateField.SFP 0x15#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x126938#64 + (w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x126934#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (w (StateField.SFP 0x15#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x16#5) s) (r (StateField.SFP 0x15#5) s)) + (w StateField.PC 0x12692c#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) + (w StateField.PC 0x126924#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126920#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x12691c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x126918#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126914#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done -#time -theorem program.blocki_eq_0x126960 {s : ArmState} + +-- #23/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126940 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126960#64) + (h_pc : r StateField.PC s = 0x126940#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x1269b0#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128)) - (w StateField.PC 0x1269ac#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x10#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x10#5) s) 0x0#128)) - (w StateField.PC 0x1269a8#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x1269a4#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x10#5) s) 0x0#128) - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))))) - (w StateField.PC 0x1269a0#64 - (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128) - (w (StateField.SFP 0x17#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x15#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x14#5) s ++ r (StateField.SFP 0x13#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x15#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x16#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x14#5) s ++ r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (w StateField.PC 0x126998#64 - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - (w StateField.PC 0x126994#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x14#5) s ++ r (StateField.SFP 0x13#5) s)) - (w (StateField.SFP 0x17#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x10#5) s) (r (StateField.SFP 0x17#5) s)) - (w StateField.PC 0x12698c#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x17#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x17#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126984#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) - (w StateField.PC 0x126980#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128)) - (w StateField.PC 0x12697c#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x17#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x17#5) s) - 0x0#128)) - (w StateField.PC 0x126978#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126974#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128) - (w (StateField.SFP 0x4#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)))) - (w StateField.PC 0x126970#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128) - (w (StateField.SFP 0x16#5) - (DPSFP.sha512su1 (r (StateField.SFP 0x15#5) s) - (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x16#5) s)) - (w StateField.PC 0x126968#64 - (w (StateField.SFP 0x4#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x126964#64 - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)))) + (w StateField.PC 0x126970#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) + (w (StateField.SFP 0x16#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x126968#64 + (w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x126964#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (w (StateField.SFP 0x16#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x17#5) s) (r (StateField.SFP 0x16#5) s)) + (w StateField.PC 0x12695c#64 + (w (StateField.SFP 0x4#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) + (w StateField.PC 0x126954#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x126950#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x12694c#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x126948#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126944#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done --- #eval 0x126960#64 + 20*4 -set_option pp.maxSteps 8000 in -#time -theorem program.blocki_eq_0x1269b0 {s : ArmState} +-- #24/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126970 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x1269b0#64) + (h_pc : r StateField.PC s = 0x126970#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w (StateField.SFP 0x3#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + run 12 s = + w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)))) + (w StateField.PC 0x1269a0#64 + (w (StateField.SFP 0x3#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) + (w (StateField.SFP 0x17#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (w StateField.PC 0x126998#64 + (w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) + (w StateField.PC 0x126994#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (w (StateField.SFP 0x17#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x10#5) s) (r (StateField.SFP 0x17#5) s)) + (w StateField.PC 0x12698c#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) + (w StateField.PC 0x126984#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x126980#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x12697c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) + (w StateField.PC 0x126978#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126974#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + + +-- #25/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x1269a0 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x1269a0#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)))) + (w StateField.PC 0x1269d0#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) + (w (StateField.SFP 0x10#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x1269c8#64 + (w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))))) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x1269c4#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (w (StateField.SFP 0x10#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x11#5) s) (r (StateField.SFP 0x10#5) s)) + (w StateField.PC 0x1269bc#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) + (w StateField.PC 0x1269b4#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x1269b0#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x1269ac#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x1269a8#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x1269a4#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + + +-- #26/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x1269d0 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x1269d0#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x3#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)))) (w StateField.PC 0x126a00#64 (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) (w (StateField.SFP 0x11#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x15#5) s ++ r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) (w StateField.PC 0x1269f8#64 (w (StateField.SFP 0x3#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) (w StateField.PC 0x1269f4#64 (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x16#5) s ++ r (StateField.SFP 0x15#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) (w (StateField.SFP 0x11#5) (DPSFP.sha512su0 (r (StateField.SFP 0x12#5) s) (r (StateField.SFP 0x11#5) s)) (w StateField.PC 0x1269ec#64 (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128)) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) (w StateField.PC 0x1269e4#64 (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) - (w StateField.PC 0x1269e0#64 + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x1269e0#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x1269dc#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x1269d8#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x1269d4#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + + +-- #27/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126a00 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126a00#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)))) + (w StateField.PC 0x126a30#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) + (w (StateField.SFP 0x12#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126a28#64 + (w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126a24#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (w (StateField.SFP 0x12#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x13#5) s) (r (StateField.SFP 0x12#5) s)) + (w StateField.PC 0x126a1c#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) + (w StateField.PC 0x126a14#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126a10#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x126a0c#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126a08#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126a04#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + + +-- #28/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126a30 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126a30#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)))) + (w StateField.PC 0x126a60#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) + (w (StateField.SFP 0x13#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x126a58#64 + (w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x126a54#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (w (StateField.SFP 0x13#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x14#5) s) (r (StateField.SFP 0x13#5) s)) + (w StateField.PC 0x126a4c#64 + (w (StateField.SFP 0x4#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) + (w StateField.PC 0x126a44#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x126a40#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x126a3c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x126a38#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126a34#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf + replace h_run := h_run.symm + sym_n 12 + simp (config := {decide := true}) only + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 + done + +-- #29/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126a60 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126a60#64) + (h_err : r StateField.ERR s = StateError.None) : + run 12 s = + w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)))) + (w StateField.PC 0x126a90#64 + (w (StateField.SFP 0x3#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) + (w (StateField.SFP 0x14#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126a88#64 + (w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126a84#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + (w (StateField.SFP 0x14#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x15#5) s) (r (StateField.SFP 0x14#5) s)) + (w StateField.PC 0x126a7c#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) + (w StateField.PC 0x126a74#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x126a70#64 (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128)) - (w StateField.PC 0x1269dc#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128)) - (w StateField.PC 0x1269d8#64 + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126a6c#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126a68#64 (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x1269d4#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x11#5) s) 0x0#128) - (w (StateField.SFP 0x0#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)))) - (w StateField.PC 0x1269d0#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - 0x0#128) - (w (StateField.SFP 0x10#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x15#5) s ++ - r (StateField.SFP 0x14#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x15#5) s ++ - r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (w StateField.PC 0x1269c8#64 - (w (StateField.SFP 0x0#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - (w StateField.PC 0x1269c4#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x15#5) s ++ - r (StateField.SFP 0x14#5) s)) - (w (StateField.SFP 0x10#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x11#5) s) - (r (StateField.SFP 0x10#5) s)) - (w StateField.PC 0x1269bc#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128) - (w StateField.PC 0x1269b4#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - s)))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126a64#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, - state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 - done + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, -#time -theorem program.blocki_eq_0x126a00 {s : ArmState} - (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126a00#64) - (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x126a50#64 - (w (StateField.SFP 0x7#5) (extractLsb' 64 128 (r (StateField.SFP 0x10#5) s ++ r (StateField.SFP 0x17#5) s)) - (w (StateField.SFP 0x13#5) (DPSFP.sha512su0 (r (StateField.SFP 0x14#5) s) (r (StateField.SFP 0x13#5) s)) - (w StateField.PC 0x126a4c#64 - (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x13#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x13#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126a44#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) - (w StateField.PC 0x126a40#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) - 0x0#128)) - (w StateField.PC 0x126a3c#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x13#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x13#5) s) 0x0#128)) - (w StateField.PC 0x126a38#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x126a34#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x13#5) s) - 0x0#128) - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))))) - (w StateField.PC 0x126a30#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) - 0x0#128) - (w (StateField.SFP 0x12#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x17#5) s ++ r (StateField.SFP 0x16#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x17#5) s ++ r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (w StateField.PC 0x126a28#64 - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) - (w StateField.PC 0x126a24#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x17#5) s ++ r (StateField.SFP 0x16#5) s)) - (w (StateField.SFP 0x12#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x13#5) s) - (r (StateField.SFP 0x12#5) s)) - (w StateField.PC 0x126a1c#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x12#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x12#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126a14#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (w StateField.PC 0x126a10#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x126a0c#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x12#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x12#5) s) 0x0#128)) - (w StateField.PC 0x126a08#64 - (w (StateField.GPR 0x3#5) - (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x19#5) - (read_mem_bytes 16 - (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126a04#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x12#5) s) 0x0#128) - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf - replace h_run := h_run.symm - sym_n 20 - simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, - h_step_4, h_step_3, h_step_2, h_step_1, state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done -#time -theorem program.blocki_eq_0x126a50 {s : ArmState} + +-- #30/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126a90 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126a50#64) + (h_pc : r StateField.PC s = 0x126a90#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x126aa0#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) - 0x0#128)) - (w StateField.PC 0x126a9c#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x15#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x15#5) s) 0x0#128)) - (w StateField.PC 0x126a98#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w StateField.PC 0x126a94#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x15#5) s) 0x0#128) - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))))) - (w StateField.PC 0x126a90#64 - (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) - 0x0#128) - (w (StateField.SFP 0x14#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x12#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (DPSFP.sha512su1 (r (StateField.SFP 0x12#5) s) (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x13#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (w StateField.PC 0x126a88#64 - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) - (w StateField.PC 0x126a84#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x11#5) s ++ r (StateField.SFP 0x10#5) s)) - (w (StateField.SFP 0x14#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x15#5) s) (r (StateField.SFP 0x14#5) s)) - (w StateField.PC 0x126a7c#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x14#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x14#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126a74#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) - (w StateField.PC 0x126a70#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) (r (StateField.SFP 0x4#5) s)) - 0x0#128)) - (w StateField.PC 0x126a6c#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x14#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x14#5) s) - 0x0#128)) - (w StateField.PC 0x126a68#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x19#5) - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126a64#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x14#5) s) 0x0#128) - (w (StateField.SFP 0x4#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)))) - (w StateField.PC 0x126a60#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - 0x0#128) - (w (StateField.SFP 0x13#5) - (DPSFP.sha512su1 (r (StateField.SFP 0x12#5) s) - (r (StateField.SFP 0x7#5) s) - (r (StateField.SFP 0x13#5) s)) - (w StateField.PC 0x126a58#64 - (w (StateField.SFP 0x4#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x126a54#64 - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 12 s = + w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)))) + (w StateField.PC 0x126ac0#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) + (w (StateField.SFP 0x15#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x126ab8#64 + (w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x126ab4#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + (w (StateField.SFP 0x15#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x16#5) s) (r (StateField.SFP 0x15#5) s)) + (w StateField.PC 0x126aac#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) + (w StateField.PC 0x126aa4#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x126aa0#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x126a9c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x126a98#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126a94#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done -set_option pp.maxSteps 8000 in -#time -theorem program.blocki_eq_0x126aa0 {s : ArmState} + +-- #31/32 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126ac0 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126aa0#64) + (h_pc : r StateField.PC s = 0x126ac0#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w (StateField.SFP 0x3#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + run 12 s = + w (StateField.SFP 0x3#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))))) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)))) (w StateField.PC 0x126af0#64 (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) (w (StateField.SFP 0x16#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 - (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x12#5) s ++ r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) (w StateField.PC 0x126ae8#64 (w (StateField.SFP 0x3#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) (w StateField.PC 0x126ae4#64 (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 (r (StateField.SFP 0x13#5) s ++ r (StateField.SFP 0x12#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) (w (StateField.SFP 0x16#5) (DPSFP.sha512su0 (r (StateField.SFP 0x17#5) s) (r (StateField.SFP 0x16#5) s)) (w StateField.PC 0x126adc#64 (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x16#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x16#5) s) 0x0#128)) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) (w StateField.PC 0x126ad4#64 (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (w StateField.PC 0x126ad0#64 (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128)) - 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (w StateField.PC 0x126acc#64 (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x16#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x18#5) s) - (r (StateField.SFP 0x16#5) s) 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) (w StateField.PC 0x126ac8#64 (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (w StateField.PC 0x126ac4#64 (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x18#5) s) (r (StateField.SFP 0x16#5) s) 0x0#128) - (w (StateField.SFP 0x0#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)))) - (w StateField.PC 0x126ac0#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)) - 0x0#128) - (w (StateField.SFP 0x15#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x12#5) s ++ - r (StateField.SFP 0x11#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x12#5) s ++ - r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (w StateField.PC 0x126ab8#64 - (w (StateField.SFP 0x0#5) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x19#5) s) - 0x0#128)) - (w StateField.PC 0x126ab4#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x12#5) s ++ - r (StateField.SFP 0x11#5) s)) - (w (StateField.SFP 0x15#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x16#5) s) - (r (StateField.SFP 0x15#5) s)) - (w StateField.PC 0x126aac#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x19#5) s) 0x0#128) - (w StateField.PC 0x126aa4#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - r (StateField.SFP 0x4#5) s)) - s)))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done -set_option pp.maxSteps 8000 in -#time + +-- #32/32 +set_option pp.maxSteps 50000 in theorem program.blocki_eq_0x126af0 {s : ArmState} (h_program : s.program = program) (h_pc : r StateField.PC s = 0x126af0#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w (StateField.SFP 0x4#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) - (w StateField.PC 0x126b40#64 - (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x10#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x10#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126b38#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) + run 12 s = + w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)))) + (w StateField.PC 0x126b20#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) + (w (StateField.SFP 0x17#5) + (SHA2.message_schedule_word_aux (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) ++ + SHA2.message_schedule_word_aux (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (w StateField.PC 0x126b18#64 + (w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) - (w StateField.PC 0x126b34#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128)) - (w StateField.PC 0x126b30#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x10#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x10#5) s) 0x0#128)) - (w StateField.PC 0x126b2c#64 - (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) - (w (StateField.SFP 0x10#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) - (w StateField.PC 0x126b28#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) (r (StateField.SFP 0x10#5) s) - 0x0#128) - (w StateField.PC 0x126b24#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) + (w StateField.PC 0x126b14#64 + (w (StateField.SFP 0x7#5) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + (w (StateField.SFP 0x17#5) + (DPSFP.sha512su0 (r (StateField.SFP 0x10#5) s) (r (StateField.SFP 0x17#5) s)) + (w StateField.PC 0x126b0c#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) + (w StateField.PC 0x126b04#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126b00#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x126afc#64 (w (StateField.SFP 0x19#5) - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))))) - (w StateField.PC 0x126b20#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128) - (w (StateField.SFP 0x17#5) - (SHA2.message_schedule_word_aux - (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x14#5) s ++ r (StateField.SFP 0x13#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.message_schedule_word_aux - (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x14#5) s ++ r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (w StateField.PC 0x126b18#64 - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - (w StateField.PC 0x126b14#64 - (w (StateField.SFP 0x7#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x14#5) s ++ r (StateField.SFP 0x13#5) s)) - (w (StateField.SFP 0x17#5) - (DPSFP.sha512su0 (r (StateField.SFP 0x10#5) s) - (r (StateField.SFP 0x17#5) s)) - (w StateField.PC 0x126b0c#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126b04#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (w StateField.PC 0x126b00#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (w StateField.PC 0x126afc#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128)) - (w StateField.PC 0x126af8#64 - (w (StateField.GPR 0x3#5) - (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 - (r (StateField.GPR 0x3#5) s) s) - (w StateField.PC 0x126af4#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128) - s)))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) + (w StateField.PC 0x126af8#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) + (w StateField.PC 0x126af4#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + s))))))))))))))))))))) + := by + generalize h_run : run 12 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 12 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_11, h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_12 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_12 + exact h_step_12 done -#time -theorem program.blocki_eq_0x126b40 {s : ArmState} + +-- #1/7 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126b20 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126b40#64) + (h_pc : r StateField.PC s = 0x126b20#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x126b90#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) - 0x0#128 ++ + run 11 s = + w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)) + + SHA2.compression_update_t2 (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 (r (StateField.SFP 0x4#5) s))))) - (w StateField.PC 0x126b8c#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) - 0x0#128)) - (w StateField.PC 0x126b88#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x12#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x12#5) s) 0x0#128)) - (w StateField.PC 0x126b84#64 - (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x12#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s + 0x10#64) s) - (w StateField.PC 0x126b80#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x12#5) s) 0x0#128) - (w StateField.PC 0x126b7c#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)))) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))))) - (w StateField.PC 0x126b78#64 - (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) - 0x0#128) - (w StateField.PC 0x126b70#64 - (w (StateField.SFP 0x11#5) - (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) - (w StateField.PC 0x126b6c#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x11#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x11#5) s) - 0x0#128)) - 0x0#128) - (w StateField.PC 0x126b64#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128 ++ - r (StateField.SFP 0x2#5) s)) - (w StateField.PC 0x126b60#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x4#5) s) - 0x0#128)) - (w StateField.PC 0x126b5c#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128)) - (w StateField.PC 0x126b58#64 - (w (StateField.GPR 0x1#5) - (r (StateField.GPR 0x1#5) s + 0x10#64) - (w (StateField.SFP 0x11#5) - (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) - (w StateField.PC 0x126b54#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x11#5) s) 0x0#128) - (w StateField.PC 0x126b50#64 - (w (StateField.GPR 0x3#5) - (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 - (r (StateField.GPR 0x3#5) s) s) - (w (StateField.SFP 0x4#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (r (StateField.SFP 0x4#5) s) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (r (StateField.SFP 0x2#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 64 64 - (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x2#5) s)) + - extractLsb' 0 64 - (r (StateField.SFP 0x4#5) s))) - (w StateField.PC 0x126b4c#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add - (r (StateField.SFP 0x3#5) s) - (r (StateField.SFP 0x4#5) s) 0x0#128) - (w StateField.PC 0x126b44#64 - (w (StateField.SFP 0x10#5) - (DPSFP.vrev128_64_8 - (r (StateField.SFP 0x10#5) s)) - s)))))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)))) + (w StateField.PC 0x126b4c#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) + (w StateField.PC 0x126b44#64 + (w (StateField.SFP 0x10#5) (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) + (w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x126b40#64 + (w (StateField.SFP 0x4#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s)))) + (w StateField.PC 0x126b38#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x126b34#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x126b30#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x126b2c#64 + (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) + (w (StateField.SFP 0x10#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) + (w StateField.PC 0x126b28#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x10#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x10#5) s))) + (w StateField.PC 0x126b24#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) + (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) s))))))))))))))))))))) + := by + generalize h_run : run 11 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 11 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_11 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_11 + exact h_step_11 done -set_option pp.maxSteps 8000 in -#time -theorem program.blocki_eq_0x126b90 {s : ArmState} +-- #2/7 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126b4c {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126b90#64) + (h_pc : r StateField.PC s = 0x126b4c#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x126be0#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x14#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x14#5) s) 0x0#128)) - (w StateField.PC 0x126bdc#64 - (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x14#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s + 0x10#64) s) - (w StateField.PC 0x126bd8#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x14#5) s) 0x0#128) - (w StateField.PC 0x126bd4#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w (StateField.SFP 0x3#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))))) - (w StateField.PC 0x126bd0#64 - (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) - 0x0#128) - (w StateField.PC 0x126bc8#64 - (w (StateField.SFP 0x13#5) - (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) - (w (StateField.SFP 0x3#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) - (w StateField.PC 0x126bc4#64 - (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x13#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x13#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126bbc#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x1#5) s)) - (w StateField.PC 0x126bb8#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x3#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) (r (StateField.SFP 0x18#5) s) - 0x0#128)) - 0x0#128)) - (w StateField.PC 0x126bb4#64 - (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x13#5) s) - 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x13#5) s) - 0x0#128)) - (w StateField.PC 0x126bb0#64 - (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) - (w (StateField.SFP 0x13#5) - (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) - (w StateField.PC 0x126bac#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x13#5) s) 0x0#128) - (w StateField.PC 0x126ba8#64 - (w (StateField.GPR 0x3#5) - (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (w (StateField.SFP 0x0#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (r (StateField.SFP 0x1#5) s)) - (extractLsb' 0 64 - (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x1#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add - (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) - 0x0#128))) - (extractLsb' 0 64 - (r (StateField.SFP 0x1#5) s)) - (extractLsb' 64 64 - (r (StateField.SFP 0x1#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)))) - (w StateField.PC 0x126ba4#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x4#5) s) - (DPSFP.sha512h (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126b9c#64 - (w (StateField.SFP 0x12#5) - (DPSFP.vrev128_64_8 - (r (StateField.SFP 0x12#5) s)) - (w (StateField.SFP 0x0#5) - (DPSFP.sha512h - (r (StateField.SFP 0x5#5) s) - (r (StateField.SFP 0x6#5) s) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add - (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) - 0x0#128)) - (w StateField.PC 0x126b98#64 - (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 - BitVec.add - (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x18#5) s) - 0x0#128) - s))))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + run 11 s = + w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)))) + (w StateField.PC 0x126b78#64 + (w (StateField.SFP 0x3#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) + (w StateField.PC 0x126b70#64 + (w (StateField.SFP 0x11#5) (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) + (w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x126b6c#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s)))) + (w StateField.PC 0x126b64#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x126b60#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126b5c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x126b58#64 + (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) + (w (StateField.SFP 0x11#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) + (w StateField.PC 0x126b54#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x11#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x11#5) s))) + (w StateField.PC 0x126b50#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) + (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) s))))))))))))))))))))) + := by + generalize h_run : run 11 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 11 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_11 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_11 + exact h_step_11 done -set_option pp.maxSteps 8000 in -#time -theorem program.blocki_eq_0x126be0 {s : ArmState} +-- #3/7 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126b78 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126be0#64) + (h_pc : r StateField.PC s = 0x126b78#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w StateField.PC 0x126c30#64 - (w (StateField.SFP 0x18#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (r (StateField.SFP 0x16#5) s) 0x0#128) - (w StateField.PC 0x126c2c#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x19#5) (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s + 0x10#64) s) - (w (StateField.SFP 0x4#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))))) - (w StateField.PC 0x126c28#64 + run 11 s = + w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)))) + (w StateField.PC 0x126ba4#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) + (w StateField.PC 0x126b9c#64 + (w (StateField.SFP 0x12#5) (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) + (w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126b98#64 (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) - 0x0#128) - (w StateField.PC 0x126c20#64 - (w (StateField.SFP 0x15#5) (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) - (w (StateField.SFP 0x4#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ - SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) - (w StateField.PC 0x126c1c#64 - (w (StateField.SFP 0x4#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126c14#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x3#5) s)) - (w StateField.PC 0x126c10#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128)) - (w StateField.PC 0x126c0c#64 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s)))) + (w StateField.PC 0x126b90#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x126b8c#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x126b88#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126b84#64 + (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) + (w (StateField.SFP 0x12#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) + (w StateField.PC 0x126b80#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x12#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x12#5) s))) + (w StateField.PC 0x126b7c#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) + (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) s))))))))))))))))))))) + := by + generalize h_run : run 11 s = sf + replace h_run := h_run.symm + sym_n 11 + simp (config := {decide := true}) only + [h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_11 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_11 + exact h_step_11 + done + +-- #4/7 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126ba4 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126ba4#64) + (h_err : r StateField.ERR s = StateError.None) : + run 11 s = + w (StateField.SFP 0x3#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)))) + (w StateField.PC 0x126bd0#64 + (w (StateField.SFP 0x4#5) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) + (w StateField.PC 0x126bc8#64 + (w (StateField.SFP 0x13#5) (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) + (w (StateField.SFP 0x3#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x126bc4#64 + (w (StateField.SFP 0x3#5) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s)))) + (w StateField.PC 0x126bbc#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x126bb8#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x126bb4#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x126bb0#64 + (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) + (w (StateField.SFP 0x13#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) + (w StateField.PC 0x126bac#64 (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x15#5) s) 0x0#128)) - (w StateField.PC 0x126c08#64 - (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) - (w (StateField.SFP 0x15#5) - (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) - (w StateField.PC 0x126c04#64 - (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x19#5) s) (r (StateField.SFP 0x15#5) s) 0x0#128) - (w StateField.PC 0x126c00#64 - (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) - (w (StateField.SFP 0x18#5) - (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) - (w (StateField.SFP 0x2#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)))) - (w StateField.PC 0x126bfc#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - 0x0#128) - (w StateField.PC 0x126bf4#64 - (w (StateField.SFP 0x14#5) - (DPSFP.vrev128_64_8 (r (StateField.SFP 0x14#5) s)) - (w (StateField.SFP 0x2#5) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128)) - (w StateField.PC 0x126bf0#64 - (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (r (StateField.SFP 0x18#5) s) 0x0#128) - (w StateField.PC 0x126be8#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x4#5) s ++ - r (StateField.SFP 0x0#5) s)) - (w StateField.PC 0x126be4#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x2#5) s ++ - r (StateField.SFP 0x4#5) s)) - s)))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x13#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x13#5) s))) + (w StateField.PC 0x126ba8#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) + (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) s))))))))))))))))))))) + := by + generalize h_run : run 11 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 11 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_11 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_11 + exact h_step_11 done -set_option pp.maxSteps 8000 in -#time -theorem program.blocki_eq_0x126c30 {s : ArmState} +-- #5/7 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126bd0 {s : ArmState} (h_program : s.program = program) - (h_pc : r StateField.PC s = 0x126c30#64) + (h_pc : r StateField.PC s = 0x126bd0#64) (h_err : r StateField.ERR s = StateError.None) : - run 20 s = w (StateField.SFP 0x0#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + run 11 s = + w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)))) + (w StateField.PC 0x126bfc#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s)) + + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) + (w StateField.PC 0x126bf4#64 + (w (StateField.SFP 0x14#5) (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) + (w (StateField.SFP 0x2#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128))))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128))))) + - extractLsb' 64 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126bf0#64 + (w (StateField.SFP 0x2#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s)))) + (w StateField.PC 0x126be8#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126be4#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + (w StateField.PC 0x126be0#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126bdc#64 + (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) + (w (StateField.SFP 0x14#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) + (w StateField.PC 0x126bd8#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x14#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x14#5) s))) + (w StateField.PC 0x126bd4#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) + (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) s))))))))))))))))))))) + := by + generalize h_run : run 11 s = sf + replace h_run := h_run.symm + sym_n 11 + simp (config := {decide := true}) only + [h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_11 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_11 + exact h_step_11 + done + +-- #6/7 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126bfc {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126bfc#64) + (h_err : r StateField.ERR s = StateError.None) : + run 11 s = + w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)))) + (w StateField.PC 0x126c28#64 + (w (StateField.SFP 0x0#5) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) + (w StateField.PC 0x126c20#64 + (w (StateField.SFP 0x15#5) (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) + (w (StateField.SFP 0x4#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) - (extractLsb' 0 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128))))) - (extractLsb' 64 64 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128))))) + - extractLsb' 0 64 - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x126c1c#64 + (w (StateField.SFP 0x4#5) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s)))) + (w StateField.PC 0x126c14#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (w StateField.PC 0x126c10#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + (w StateField.PC 0x126c0c#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x126c08#64 + (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) + (w (StateField.SFP 0x15#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) + (w StateField.PC 0x126c04#64 + (w (StateField.SFP 0x19#5) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x15#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x15#5) s))) + (w StateField.PC 0x126c00#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x18#5) + (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) s))))))))))))))))))))) + := by + generalize h_run : run 11 s = sf + replace h_run := h_run.symm + sym_n 11 + simp (config := {decide := true}) only + [h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_11 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_11 + exact h_step_11 + done + +-- #7/7 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126c28 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126c28#64) + (h_err : r StateField.ERR s = StateError.None) : + run 11 s = + w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)))) + (w StateField.PC 0x126c54#64 + (w (StateField.SFP 0x3#5) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s)) + + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) + (w StateField.PC 0x126c4c#64 + (w (StateField.SFP 0x16#5) (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) + (w (StateField.SFP 0x1#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))))) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x126c48#64 + (w (StateField.SFP 0x1#5) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s)))) + (w StateField.PC 0x126c40#64 + (w (StateField.SFP 0x6#5) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x2#5) s)) + (w StateField.PC 0x126c3c#64 + (w (StateField.SFP 0x5#5) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) + (w StateField.PC 0x126c38#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x126c34#64 + (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) + (w (StateField.SFP 0x16#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) + (w StateField.PC 0x126c30#64 + (w (StateField.SFP 0x18#5) + (extractLsb' 64 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x16#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x18#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x16#5) s))) + (w StateField.PC 0x126c2c#64 + (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s + 0x10#64) + (w (StateField.SFP 0x19#5) + (read_mem_bytes 16 (r (StateField.GPR 0x3#5) s) s) s))))))))))))))))))))) + := by + generalize h_run : run 11 s = sf + replace h_run := h_run.symm + sym_n 11 + simp (config := {decide := true}) only + [h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, + h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + + state_simp_rules, bitvec_rules, minimal_theory, + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_11 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_11 + exact h_step_11 + done + +-- #1/1 +set_option pp.maxSteps 50000 in +theorem program.blocki_eq_0x126c54 {s : ArmState} + (h_program : s.program = program) + (h_pc : r StateField.PC s = 0x126c54#64) + (h_err : r StateField.ERR s = StateError.None) : + run 11 s = + w (StateField.SFP 0x0#5) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) + + SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) ++ + (SHA2.compression_update_t1 + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)) + + SHA2.compression_update_t2 + (SHA2.compression_update_t2 (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s)))) (w StateField.PC 0x126c80#64 (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x4#5) s) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s) + SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) (w StateField.PC 0x126c78#64 - (w (StateField.SFP 0x17#5) (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s + 0x10#64) s)) + (w (StateField.SFP 0x17#5) (DPSFP.vrev128_64_8 (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) (w (StateField.SFP 0x0#5) - (SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) + (SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ SHA2.compression_update_t1 - (extractLsb' 0 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s)) + - SHA2.compression_update_t1 - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) + (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s) + + SHA2.compression_update_t1 (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) - (extractLsb' 64 64 - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s))) - (extractLsb' 0 64 - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128))) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s)) (extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) (w StateField.PC 0x126c74#64 (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128)) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s)) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s)))) (w StateField.PC 0x126c6c#64 (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128 ++ - r (StateField.SFP 0x4#5) s)) + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) ++ extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) (w StateField.PC 0x126c68#64 (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) ++ + extractLsb' 64 64 (r (StateField.SFP 0x3#5) s)) (w StateField.PC 0x126c64#64 (w (StateField.SFP 0x19#5) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128)) + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s) ++ + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s))) (w StateField.PC 0x126c60#64 - (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64 + 0x10#64) - (w (StateField.SFP 0x17#5) - (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s + 0x10#64) s) + (w (StateField.GPR 0x1#5) (r (StateField.GPR 0x1#5) s + 0x10#64) + (w (StateField.SFP 0x17#5) (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s) (w StateField.PC 0x126c5c#64 (w (StateField.SFP 0x19#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x19#5) s) - (r (StateField.SFP 0x17#5) s) 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 64 64 (r (StateField.SFP 0x17#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x19#5) s) + + extractLsb' 0 64 (r (StateField.SFP 0x17#5) s))) (w (StateField.GPR 0x3#5) (r (StateField.GPR 0x3#5) s - 0x280#64) - (w StateField.PC 0x126c58#64 - (w (StateField.SFP 0x1#5) - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) ++ - (SHA2.compression_update_t2 - (SHA2.compression_update_t2 - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 64 64 - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x18#5) s ++ - r (StateField.SFP 0x18#5) s)) - 0x0#128))) - (extractLsb' 0 64 (r (StateField.SFP 0x4#5) s)) - (extractLsb' 64 64 (r (StateField.SFP 0x4#5) s)) + - extractLsb' 0 64 - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)))) - (w StateField.PC 0x126c54#64 - (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x2#5) s) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x18#5) s ++ r (StateField.SFP 0x18#5) s)) - 0x0#128)) - 0x0#128) - (w StateField.PC 0x126c4c#64 - (w (StateField.SFP 0x16#5) - (DPSFP.vrev128_64_8 - (read_mem_bytes 16 (r (StateField.GPR 0x1#5) s) s)) - (w (StateField.SFP 0x1#5) - (DPSFP.sha512h - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ r (StateField.SFP 0x0#5) s)) - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ r (StateField.SFP 0x2#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x18#5) s ++ - r (StateField.SFP 0x18#5) s)) - 0x0#128)) - (w StateField.PC 0x126c48#64 - (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add - (r (StateField.SFP 0x1#5) s) - (extractLsb' 64 128 - (r (StateField.SFP 0x18#5) s ++ - r (StateField.SFP 0x18#5) s)) - 0x0#128) - (w StateField.PC 0x126c40#64 - (w (StateField.SFP 0x6#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x0#5) s ++ - r (StateField.SFP 0x2#5) s)) - (w StateField.PC 0x126c3c#64 - (w (StateField.SFP 0x5#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x1#5) s ++ - r (StateField.SFP 0x0#5) s)) - (w StateField.PC 0x126c38#64 - (w (StateField.SFP 0x18#5) - (extractLsb' 64 128 - (r (StateField.SFP 0x18#5) s ++ - r (StateField.SFP 0x18#5) s)) - (w StateField.PC 0x126c34#64 - (w (StateField.GPR 0x1#5) - (r (StateField.GPR 0x1#5) s + 0x10#64) - (w (StateField.SFP 0x16#5) - (read_mem_bytes 16 - (r (StateField.GPR 0x1#5) s) s) - s))))))))))))))))))))))))))))))))))))) - := by - generalize h_run : run 20 s = sf + (w StateField.PC 0x126c58#64 s)))))))))))))))))))) + := by + generalize h_run : run 11 s = sf replace h_run := h_run.symm - sym_n 20 + sym_n 11 simp (config := {decide := true}) only - [h_step_19, h_step_18, h_step_17, h_step_16, h_step_15, - h_step_14, h_step_13, h_step_12, h_step_11, h_step_10, - h_step_9, h_step_8, h_step_7, h_step_6, h_step_5, + [h_step_10, h_step_9, + h_step_8, h_step_7, h_step_6, h_step_5, h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] - at h_step_20 - exact h_step_20 + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] + at h_step_11 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_11 + exact h_step_11 done -#time + +-- #1/1 +set_option pp.maxSteps 50000 in theorem program.blocki_eq_0x126c80 {s : ArmState} (h_program : s.program = program) (h_pc : r StateField.PC s = 0x126c80#64) (h_err : r StateField.ERR s = StateError.None) : - run 5 s = w StateField.PC (if ¬r (StateField.GPR 0x2#5) s = 0x0#64 then 0x126500#64 else 0x126c94#64) + run 5 s = + w StateField.PC (if r (StateField.GPR 0x2#5) s = 0x0#64 then 0x126c94#64 else 0x126500#64) (w (StateField.SFP 0x3#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) (r (StateField.SFP 0x1d#5) s) 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x3#5) s) + extractLsb' 64 64 (r (StateField.SFP 0x1d#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x3#5) s) + extractLsb' 0 64 (r (StateField.SFP 0x1d#5) s))) (w StateField.PC 0x126c8c#64 (w (StateField.SFP 0x2#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x2#5) s) (r (StateField.SFP 0x1c#5) s) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x2#5) s) + extractLsb' 64 64 (r (StateField.SFP 0x1c#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x2#5) s) + extractLsb' 0 64 (r (StateField.SFP 0x1c#5) s))) (w StateField.PC 0x126c88#64 (w (StateField.SFP 0x1#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x1#5) s) (r (StateField.SFP 0x1b#5) s) - 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x1#5) s) + extractLsb' 64 64 (r (StateField.SFP 0x1b#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x1#5) s) + extractLsb' 0 64 (r (StateField.SFP 0x1b#5) s))) (w StateField.PC 0x126c84#64 (w (StateField.SFP 0x0#5) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x0#5) s) - (r (StateField.SFP 0x1a#5) s) 0x0#128) + (extractLsb' 64 64 (r (StateField.SFP 0x0#5) s) + extractLsb' 64 64 (r (StateField.SFP 0x1a#5) s) ++ + (extractLsb' 0 64 (r (StateField.SFP 0x0#5) s) + extractLsb' 0 64 (r (StateField.SFP 0x1a#5) s))) s))))))) - := by + := by generalize h_run : run 5 s = sf replace h_run := h_run.symm sym_n 5 simp (config := {decide := true}) only [h_step_4, h_step_3, h_step_2, h_step_1, + binary_vector_op_aux_add_128_simp, state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, state_simp_rules, bitvec_rules, minimal_theory, - sha512_message_schedule_rule, sha512h2_rule, - sha512h_rule_1, sha512h_rule_2] + sha512_message_schedule_rule, + sha512h_and_sha512h2_rule] at h_step_5 - -- explode_step h_step_5 at s5 + simp [sha512h_rule, + state_value, + extractLsb'_append_swap, + extractLsb'_append_left_64, + extractLsb'_append_right_64, + extractLsb'_add_64, + state_simp_rules, bitvec_rules, minimal_theory] at h_step_5 exact h_step_5 done diff --git a/Proofs/SHA512/SHA512_block_armv8_rules.lean b/Proofs/SHA512/SHA512_block_armv8_rules.lean index 88e05150..1cde8283 100644 --- a/Proofs/SHA512/SHA512_block_armv8_rules.lean +++ b/Proofs/SHA512/SHA512_block_armv8_rules.lean @@ -58,6 +58,17 @@ private theorem extractLsb'_high_64_from_setWidth_128_or (x y : BitVec 64) : extractLsb' 64 64 ((setWidth 128 x) ||| (setWidth 128 y <<< 64)) = y := by bv_decide +theorem sha512h_rule (a0 a1 b0 b1 c0 c1 d0 d1 e0 e1 : BitVec 64) : + (DPSFP.sha512h (a1 ++ a0) (b1 ++ b0) (c1 + (d1 + e1) ++ (c0 + (d0 + e0)))) = + let hi64_spec := compression_update_t1 b1 a0 a1 c1 d1 e1 + let lo64_spec := compression_update_t1 (b0 + hi64_spec) b1 a0 c0 d0 e0 + hi64_spec ++ lo64_spec + := by + simp [DPSFP.sha512h, compression_update_t1] + repeat rw [extractLsb'_append_left, extractLsb'_append_right] + ac_rfl + done + -- This lemma takes ~5min with bv_decide and the generated LRAT -- file is ~207MB. It turns out this this theorem is not a good candidate for -- proof via bit-blasting. As Bruno Dutertre says: @@ -118,19 +129,32 @@ theorem binary_vector_op_aux_add_128_simp (x y result : BitVec 128) : bv_decide done -/- -DPSFP.sha512h2 (r (StateField.SFP 0x1#5) s) (r (StateField.SFP 0x0#5) s) - (DPSFP.sha512h (extractLsb' 64 128 (r (StateField.SFP 0x3#5) s ++ r (StateField.SFP 0x2#5) s)) - (extractLsb' 64 128 (r (StateField.SFP 0x2#5) s ++ r (StateField.SFP 0x1#5) s)) - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (r (StateField.SFP 0x3#5) s) - (extractLsb' 64 128 - (DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (Memory.read_bytes 16 (r (StateField.GPR 0x3#5) s) s.mem) - (r (StateField.SFP 0x10#5) s) 0x0#128 ++ - DPSFP.binary_vector_op_aux 0 2 64 BitVec.add (Memory.read_bytes 16 (r (StateField.GPR 0x3#5) s) s.mem) - (r (StateField.SFP 0x10#5) s) 0x0#128)) - 0x0#128)) --/ +theorem sha512h_and_sha512h2_rule : + let x0 := extractLsb' 0 64 x + let y0 := extractLsb' 0 64 y + let y1 := extractLsb' 64 64 y + let hi64_spec_1 := compression_update_t1 b1 a0 a1 c1 d1 e1 + let hi64_spec_2 := compression_update_t2 y0 x0 y1 + let lo64_spec_1 := compression_update_t1 (b0 + hi64_spec_1) b1 a0 c0 d0 e0 + let lo64_spec_2 := compression_update_t2 (hi64_spec_2 + hi64_spec_1) y0 y1 + (DPSFP.sha512h2 x y + (DPSFP.sha512h (a1 ++ a0) (b1 ++ b0) + (c1 + (d1 + e1) ++ (c0 + (d0 + e0))))) = + (hi64_spec_1 + hi64_spec_2) ++ (lo64_spec_1 + lo64_spec_2) := by + simp [sha512h2_rule, sha512h] + generalize extractLsb' 0 64 x = x0 + -- generalize extractLsb' 64 64 x = x1 + generalize extractLsb' 0 64 y = y0 + generalize extractLsb' 64 64 y = y1 + repeat rw [BitVec.extractLsb'_append_left, BitVec.extractLsb'_append_right] + simp [compression_update_t1] + generalize compression_update_t2 y0 x0 y1 = p0 + generalize ch b1 a0 a1 = p1 + generalize sigma_big_1 b1 = p2 + ac_rfl + done +/- theorem sha512h_and_sha512h2_rule_1 : let elements := 2 let esize := 64 @@ -172,6 +196,7 @@ theorem sha512h_and_sha512h2_rule_1 : generalize extractLsb' 64 64 y = y1 rw [BitVec.extractLsb'_append_left, BitVec.extractLsb'_append_right] ac_rfl +-/ -- set_option maxHeartbeats 0 in -- This lemma takes 2min with bv_decide and the generated LRAT diff --git a/Specs/AESV8.lean b/Specs/AESV8.lean index c0c66e27..44ba9457 100644 --- a/Specs/AESV8.lean +++ b/Specs/AESV8.lean @@ -111,7 +111,7 @@ def AESHWCtr32EncryptBlocks_helper {Param : AESArm.KBR} (in_blocks : BitVec m) if i >= len then acc else let lo := m - (i + 1) * 128 - let hi := lo + 127 + let _hi := lo + 127 let curr_block : BitVec 128 := BitVec.extractLsb' lo 128 in_blocks have h4 : 128 = Param.block_size := by cases h3 diff --git a/Specs/SHA512.lean b/Specs/SHA512.lean index 89fe09db..c87b83e1 100644 --- a/Specs/SHA512.lean +++ b/Specs/SHA512.lean @@ -165,6 +165,25 @@ def processBlocks (message_schedule : List (BitVec 64) → List (BitVec 64)) let hash' := add_hash hash work_vars processBlocks message_schedule j hash' k rest +def compression_alt (i max : Nat) (wv : Hash) (k m : List (BitVec 64)) : Hash := + if i < max then + let ki := List.get! k i + let wi := message_schedule_word i m + let wv' := compression_update wv ki wi + compression_alt (i + 1) max wv' k m + else + wv + termination_by max - i + +def processBlocks_alt (j : Nat) (hash : Hash) + (k : List (BitVec 64)) (ms : List (List (BitVec 64))) : Hash := + match ms with + | [] => hash + | m :: rest => + let work_vars := compression_alt 0 j hash k m + let hash' := add_hash hash work_vars + processBlocks_alt j hash' k rest + def j_512 : Nat := 80 def h0_512 : Hash := diff --git a/Tactics/Attr.lean b/Tactics/Attr.lean index 7ac0f035..15c4a568 100644 --- a/Tactics/Attr.lean +++ b/Tactics/Attr.lean @@ -16,6 +16,11 @@ initialize -- theorem's conclusion registerTraceClass `Tactic.prune_updates.answer + registerOption `Tactic.prune_updates.only_answer { + defValue := false + descr := "Print the pruned updates and exit" + } + registerOption `Tactic.prune_updates.validate { defValue := false descr := "enable/disable type-checking of internal state during execution \ diff --git a/Tactics/PruneUpdates.lean b/Tactics/PruneUpdates.lean index 73993bb8..17c7cbcc 100644 --- a/Tactics/PruneUpdates.lean +++ b/Tactics/PruneUpdates.lean @@ -285,11 +285,10 @@ def toContextExpr (s : ToArmExpr.Context) : MetaM Lean.Expr := abbrev mkAuxDecl := Lean.Elab.Tactic.BVDecide.Frontend.mkAuxDecl -- (FIXME) Better formatting; change into code action, etc.! -def toArmMessageData (e : Expr) (s : ToArmExpr.Context) : MessageData := - let curr_state := s.stateVars[e.curr_state]! - let prev_state := s.stateVars[e.prev_state]! - let writes := go e.writes prev_state s 0 - m!"{curr_state} = {writes}" +def toArmMessageData (prev_state : StateVar) (updates : Updates) (s : ToArmExpr.Context) : MessageData := + let prev_state := s.stateVars[prev_state]! + let writes := go updates prev_state s 0 + m!"{writes}" where go (us : Updates) (prev_state : Lean.Expr) (s : ToArmExpr.Context) (paren_count : Nat) := match us with @@ -416,6 +415,10 @@ def ArmExprPruned? (refl_proof_name : Name) (e : Lean.Expr) : let_expr Eq _ lhs rhs := e | return none let ((lhs_writes, lhs_s0), state) ← ToArmExpr.run (ToArmExpr.toArmUpdatesAndStateVar lhs []) {} + let ctx := ToArmExpr.mkContextFromState state + trace[Tactic.prune_updates.answer] "Pruned Updates: {toArmMessageData lhs_s0 lhs_writes.prune ctx}" + if ←(getBoolOption `Tactic.prune_updates.only_answer) then + return none let ((rhs_writes, rhs_s0), state) ← ToArmExpr.run (ToArmExpr.toArmUpdatesAndStateVar rhs []) state trace[Tactic.prune_updates] "LHS writes: {lhs_writes}" @@ -429,7 +432,6 @@ def ArmExprPruned? (refl_proof_name : Name) (e : Lean.Expr) : -- let arm_expr_pruned := lhs_arm_expr.prune -- trace[Tactic.prune_updates] "Pruned Arm Expr: {arm_expr_pruned}" -- - let ctx := ToArmExpr.mkContextFromState state withAbstractAtoms ctx fun ctx' => do if lhs_s0 = rhs_s0 then return some (← ArmExprBuildProofTerm ctx' @@ -504,12 +506,80 @@ fun {s1} {x0} {x1} {s0} h_s1 => #guard_msgs in #print example1 +/- + +set_option trace.Tactic.prune_updates.answer true in +theorem timeout_example (test : Bool) + (h_step : s' = w (StateField.GPR 0x1#5) + (if (AddWithCarry (r (StateField.GPR 0x2#5) s) 0xffffffffffffffff#64 0x1#1).snd.z = 0#1 then + (AddWithCarry (r (StateField.GPR 0x2#5) s) 0xffffffffffffffff#64 0x1#1).fst + else + (AddWithCarry (r (StateField.GPR 0x2#5) s) 0#64 0x1#1).fst) + (w StateField.PC 0x126520#64 + (w (StateField.SFP 0x1d#5) (r (StateField.SFP 0x3#5) s) s))) : + s' = (w .PC (1205536#64) + (w (.GPR 0x01#5) + (if (AddWithCarry (r (StateField.GPR 0x2#5) s) 0xffffffffffffffff#64 0x1#1).snd.z = 0#1 then + (AddWithCarry (r (StateField.GPR 0x2#5) s) 0xffffffffffffffff#64 0x1#1).fst + else + (AddWithCarry (r (StateField.GPR 0x2#5) s) 0#64 0x1#1).fst) + (w (.SFP 0x1d#5) (r (StateField.SFP 3#5) s) s))) := by + rw [h_step] + prune_updates + +-- set_option allowUnsafeReducibility true +seal AddWithCarry +-- seal Prod.snd +-- seal PState.z +-- seal PFlag.Z + #time +-- set_option trace.Tactic.prune_updates.answer true in set_option diagnostics true in set_option diagnostics.threshold 5 in -set_option trace.Tactic.prune_updates true in +-- set_option trace.Tactic.prune_updates true in set_option maxRecDepth 2000 in -theorem timeout_example +theorem timeout_example1 + (h_step : s' = w (StateField.FLAG PFlag.Z) + (AddWithCarry (r (StateField.GPR 0x2#5) s) 0xff#64 0x1#1).snd.z + (w StateField.PC 0x126520#64 + (w (StateField.SFP 0x1d#5) (r (StateField.SFP 0x3#5) s) s))) : + s' = (w .PC (1205536#64) (w (.SFP 0x1d#5) (r (StateField.SFP 3#5) + s) (w (.FLAG PFlag.Z) (AddWithCarry (r (StateField.GPR 0x2#5) s) 0xff#64 0x1#1).snd.z s))) := by + rw [h_step] + prune_updates + + +seal AddWithCarry +set_option allowUnsafeReducibility true in +seal Prod.snd + +-- #time +-- set_option diagnostics true in +-- set_option diagnostics.threshold 5 in +-- -- set_option trace.Tactic.prune_updates true in +-- set_option trace.Tactic.prune_updates.answer true in +-- set_option maxRecDepth 2000 in +-- theorem timeout_example2 +-- (h_step : s' = w (StateField.GPR 0x1#5) +-- (if ¬(AddWithCarry (r (StateField.GPR 0x2#5) s) 0xffffffffffffffff#64 0x1#1).snd.z = 0x1#1 then +-- r (StateField.GPR 0x1#5) s +-- else r (StateField.GPR 0x1#5) s - 0x80#64) +-- (w StateField.PC 0x126520#64 +-- (w (StateField.SFP 0x1d#5) (r (StateField.SFP 0x3#5) s) s))) : +-- s' = (w .PC (1205536#64) (w (.GPR 0x01#5) (if +-- ¬(AddWithCarry (r (StateField.GPR 2#5) s) 0xffffffffffffffff#64 1#1).snd.z = 1#1 then r (StateField.GPR 1#5) s +-- else r (StateField.GPR 1#5) s - 128#64) (w (.SFP 0x1d#5) (r (StateField.SFP 3#5) s) s))) := by +-- rw [h_step] +-- prune_updates + +/- +#time +-- set_option diagnostics true in +-- set_option diagnostics.threshold 5 in +-- set_option trace.Tactic.prune_updates true in +-- set_option maxRecDepth 2000 in +theorem timeout_example2 (h_step : s' = w (StateField.GPR 0x1#5) (if ¬(AddWithCarry (r (StateField.GPR 0x2#5) s) 0xffff#64 0x1#1).snd.z = 0x1#1 then r (StateField.GPR 0x1#5) s @@ -555,6 +625,6 @@ theorem timeout_example (w (.FLAG PFlag.V) ((AddWithCarry (r (StateField.GPR 2#5) s) 0x0#64 1#1).snd.v) s)))))))))))))) := by rw [h_step] prune_updates - - +-/ +-/ end Tests diff --git a/Tactics/SymBlock.lean b/Tactics/SymBlock.lean index 4d627c14..dd6f60ef 100644 --- a/Tactics/SymBlock.lean +++ b/Tactics/SymBlock.lean @@ -168,8 +168,7 @@ elab "sym_block" n:num return (mkNatLit size)) let size_terms ← size_exprs.mapM (fun e => do let some val ← Lean.Meta.getNatValue? e | throwError "" - return val) - dbg_trace s!"size_terms: {size_terms}" + return val) pure size_terms.toList | _ => -- (FIXME) diff --git a/Tests/SHA2/SHA512SpecTest.lean b/Tests/SHA2/SHA512SpecTest.lean index 6ce7b676..eb57e710 100644 --- a/Tests/SHA2/SHA512SpecTest.lean +++ b/Tests/SHA2/SHA512SpecTest.lean @@ -59,6 +59,10 @@ def ans_one_blk_mem : IO SHA2.Hash := do example : SHA2.sha512 ms_mem ms_one_block = expected := by native_decide +-- #time +-- example : SHA2.processBlocks_alt SHA2.j_512 SHA2.h0_512 SHA2.k_512 ms_one_block = +-- expected := by native_decide + -- Lazy version def ms_lazy := (SHA2.message_schedule_lazy SHA2.j_512)