def aria_e4
bend-osdev-aria@0.1.0.0 · PROOF.bend:6265
import bend-osdev-aria@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-cipher-core@0.1.0.0/LAWS.bend as CoreL
import bend-osdev-aria@0.1.0.0/aria.bend as A
6265def aria_e4(s: A.LcAriaSt) -> {s == A.aria.e4(A.aria.e4(s)) : A.LcAriaSt}:
6266 match s:
6267 case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6268 %CoreL.word_xor_cancel(8n, x9, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), Word.xor(8n, Word.xor(8n, x3, x11), x11), Word.xor(8n, Word.xor(8n, x4, x11), x11), Word.xor(8n, Word.xor(8n, x5, x11), x11), Word.xor(8n, Word.xor(8n, x6, x11), x11), Word.xor(8n, Word.xor(8n, x7, x11), x11), x8, _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6269 %CoreL.word_xor_cancel(8n, x7, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), Word.xor(8n, Word.xor(8n, x3, x11), x11), Word.xor(8n, Word.xor(8n, x4, x11), x11), Word.xor(8n, Word.xor(8n, x5, x11), x11), Word.xor(8n, Word.xor(8n, x6, x11), x11), _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6270 %CoreL.word_xor_cancel(8n, x6, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), Word.xor(8n, Word.xor(8n, x3, x11), x11), Word.xor(8n, Word.xor(8n, x4, x11), x11), Word.xor(8n, Word.xor(8n, x5, x11), x11), _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6271 %CoreL.word_xor_cancel(8n, x5, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), Word.xor(8n, Word.xor(8n, x3, x11), x11), Word.xor(8n, Word.xor(8n, x4, x11), x11), _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6272 %CoreL.word_xor_cancel(8n, x4, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), Word.xor(8n, Word.xor(8n, x3, x11), x11), _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6273 %CoreL.word_xor_cancel(8n, x3, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), _, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6274 %CoreL.word_xor_cancel(8n, x2, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), _, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6275 %CoreL.word_xor_cancel(8n, x1, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6276 %CoreL.word_xor_cancel(8n, x0, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6277 {==}