AESTraceProof.rounds_step_at: def of qasim-bend-kit@0.1.0.2 Import: import qasim-bend-kit@0.1.0.2/proof/AES_TraceProof.bend as AESTraceProof Lines 75-87 of qasim-bend-kit@0.1.0.2/proof/AES_TraceProof.bend: https://jend.leeeet.dev/read.txt?path=qasim-bend-kit@0.1.0.2/proof/AES_TraceProof.bend&start_line=75&end_line=87 import Base import qasim-bend-kit@0.1.0.2/libs/AES256GCMCore.bend as Core def rounds_step_at(+fuel: Nat, +state: List<&2, U32>, +words: List<&2, U32>, +round: Nat, +next_state: List<&2, U32>, +next_round: Nat, same: {Core.aes_middle_round(state, words, round) == next_state : List<&2, U32>}, round_match: {(round + 1n : Nat) == next_round : Nat}) -> {Core.aes_rounds.go(1n+fuel, state, words, round) == Core.aes_rounds.go(fuel, next_state, words, next_round) : List<&2, U32>}: Equal.trans(List<&2, U32>, Core.aes_rounds.go(1n+fuel, state, words, round), Core.aes_rounds.go(fuel, next_state, words, (round + 1n : Nat)), Core.aes_rounds.go(fuel, next_state, words, next_round), rounds_step(fuel, state, words, round, next_state, same), Equal.cong(Nat, List<&2, U32>, value => Core.aes_rounds.go(fuel, next_state, words, value), (round + 1n : Nat), next_round, round_match)) Uses (9): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.cong https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.trans https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCMCore.bend&name=aes_middle_round https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCMCore.bend&name=aes_rounds.go https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/proof/AES_TraceProof.bend&name=rounds_step