def un.pad

bend-osdev-u32@0.1.0.0 · PROOF.bend:788

import bend-osdev-u32@0.1.0.0/PROOF.bend as PROOF
import Base

788def un.pad(p: Nat, t: Word(p)) -> {Word.to_nat(1n+p, Word.shr.pad(p, t)) == Word.to_nat(p, t) : Nat}:
789  match p:
790    case 0n:
791      {==}
792    case 1n+ +q:
793      match t:
794        case WCon{False{}, +r}:
795          un.double_cong(Word.to_nat(1n+q, Word.shr.pad(q, r)), Word.to_nat(q, r), un.pad(q, r))
796        case WCon{True{}, +r}:
797          un.succ_cong(Nat.double(Word.to_nat(1n+q, Word.shr.pad(q, r))), Nat.double(Word.to_nat(q, r)), un.double_cong(Word.to_nat(1n+q, Word.shr.pad(q, r)), Word.to_nat(q, r), un.pad(q, r)))

Uses (9)

Used by (1)