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))

Uses (9)

Used by (102)