def rounds_step_at
qasim-bend-kit@0.1.0.2 · proof/AES_TraceProof.bend:75
import qasim-bend-kit@0.1.0.2/proof/AES_TraceProof.bend as AESTraceProof
import Base
import qasim-bend-kit@0.1.0.2/libs/AES256GCMCore.bend as Core
75def rounds_step_at(+fuel: Nat, +state: List<&2, U32>, +words: List<&2, U32>,
76 +round: Nat, +next_state: List<&2, U32>, +next_round: Nat,
77 same: {Core.aes_middle_round(state, words, round) == next_state : List<&2, U32>},
78 round_match: {(round + 1n : Nat) == next_round : Nat}) ->
79 {Core.aes_rounds.go(1n+fuel, state, words, round) ==
80 Core.aes_rounds.go(fuel, next_state, words, next_round) : List<&2, U32>}:
81 Equal.trans(List<&2, U32>, Core.aes_rounds.go(1n+fuel, state, words, round),
82 Core.aes_rounds.go(fuel, next_state, words, (round + 1n : Nat)),
83 Core.aes_rounds.go(fuel, next_state, words, next_round),
84 rounds_step(fuel, state, words, round, next_state, same),
85 Equal.cong(Nat, List<&2, U32>,
86 value => Core.aes_rounds.go(fuel, next_state, words, value),
87 (round + 1n : Nat), next_round, round_match))