def bx.wself

bend-osdev-cipher-modes@0.1.0.0 · PROOF.bend:1590

import bend-osdev-cipher-modes@0.1.0.0/PROOF.bend as PROOF
import Base

1590def bx.wself(n: Nat, w: Word(n)) -> {Word.xor(n, w, w) == Word.zero(n) : Word(n)}:
1591  match n:
1592    case 0n:
1593      match w:
1594        case WNil{}:
1595          {==}
1596    case 1n+p:
1597      match w:
1598        case WCon{h, t}:
1599          match h:
1600            case False{}:
1601              %bx.wself(p, t) : {WCon{False{}, Word.xor(p, t, t)} == WCon{False{}, _} : Word(1n+p)}
1602              {==}
1603            case True{}:
1604              %bx.wself(p, t) : {WCon{False{}, Word.xor(p, t, t)} == WCon{False{}, _} : Word(1n+p)}
1605              {==}

Uses (7)

Used by (1)