def pad_value

bend-collections-laws-math@1.0.0.0 · proofs/lib/u32.bend:125

import bend-collections-laws-math@1.0.0.0/proofs/lib/u32.bend as U32
import Base
import bend-collections-laws-math@1.0.0.0/proofs/lib/lemmas/spec/numeric.bend as S

125def pad_value(+n: Nat, +w: Word(n)) -> {S.unsigned(1n+n, Word.shr.pad(n, w)) == S.unsigned(n, w) : Nat}:
126  match n:
127    case 0n:
128      match w:
129        case WNil{}:
130          {==}
131    case 1n+p:
132      match w:
133        case WCon{b, t}:
134          Equal.cong(Nat, Nat, v => Nat.add(S.bit_value(b), Nat.double(v)), S.unsigned(1n+p, Word.shr.pad(p, t)), S.unsigned(p, t), pad_value(p, t))

Uses (10)

Used by (1)