AESBlockBridgeProof.expanded_block_from_initial: def of qasim-bend-kit@0.1.0.2 Import: import qasim-bend-kit@0.1.0.2/proof/AES_BlockBridgeProof.bend as AESBlockBridgeProof Lines 17-31 of qasim-bend-kit@0.1.0.2/proof/AES_BlockBridgeProof.bend: https://jend.leeeet.dev/read.txt?path=qasim-bend-kit@0.1.0.2/proof/AES_BlockBridgeProof.bend&start_line=17&end_line=31 import Base import qasim-bend-kit@0.1.0.2/libs/AES256GCMCore.bend as Core # Establish the public-function conversion while inputs remain symbolic. # A concrete caller then compares identical public applications instead of # unfolding all fourteen rounds to recognize the internal implementation. def expanded_block_from_initial(+words: List<&2, U32>, +block: List<&2, U32>, +initial: List<&2, U32>, +expected: List<&2, U32>, initial_match: {Core.aes_add_key(block, words, 0n) == initial : List<&2, U32>}, rounds_match: {Core.aes_rounds.go(13n, initial, words, 1n) == expected : List<&2, U32>}) -> {Core.aes256_encrypt_expanded(words, block) == expected : List<&2, U32>}: match words: case Nil{}: rounds_input_matches(13n, words, block, initial, expected, initial_match, rounds_match) case head <> tail: rounds_input_matches(13n, words, block, initial, expected, initial_match, rounds_match) Uses (6): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List 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=aes256_encrypt_expanded https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCMCore.bend&name=aes_add_key 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_BlockBridgeProof.bend&name=rounds_input_matches