def aria_e17

bend-osdev-legacy-ciphers@0.1.0.0 · PROOF.bend:8124

import bend-osdev-legacy-ciphers@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-legacy-ciphers@0.1.0.0/aria.bend as A

8124def aria_e17(s: A.LcAriaSt) -> {s == A.aria.e17(A.aria.e17(s)) : A.LcAriaSt}:
8125  match s:
8126    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
8127      %word_xx(8n, x11, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), Word.xor(8n, Word.xor(8n, x6, x2), x2), Word.xor(8n, Word.xor(8n, x7, x2), x2), Word.xor(8n, Word.xor(8n, x8, x2), x2), Word.xor(8n, Word.xor(8n, x9, x2), x2), Word.xor(8n, Word.xor(8n, x10, x2), x2), _, x12, x13, x14, x15} : A.LcAriaSt}
8128      %word_xx(8n, x10, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), Word.xor(8n, Word.xor(8n, x6, x2), x2), Word.xor(8n, Word.xor(8n, x7, x2), x2), Word.xor(8n, Word.xor(8n, x8, x2), x2), Word.xor(8n, Word.xor(8n, x9, x2), x2), _, x11, x12, x13, x14, x15} : A.LcAriaSt}
8129      %word_xx(8n, x9, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), Word.xor(8n, Word.xor(8n, x6, x2), x2), Word.xor(8n, Word.xor(8n, x7, x2), x2), Word.xor(8n, Word.xor(8n, x8, x2), x2), _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
8130      %word_xx(8n, x8, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), Word.xor(8n, Word.xor(8n, x6, x2), x2), Word.xor(8n, Word.xor(8n, x7, x2), x2), _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
8131      %word_xx(8n, x7, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), Word.xor(8n, Word.xor(8n, x6, x2), x2), _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
8132      %word_xx(8n, x6, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
8133      %word_xx(8n, x5, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
8134      %word_xx(8n, x4, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
8135      %word_xx(8n, x1, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
8136      {==}

Uses (4)

Used by (2)