def internal_shl_out

bend-mathlib@0.8.1.0 · u32.bend:791

import bend-mathlib@0.8.1.0/u32.bend as U32
import Base

791def internal_shl_out(n: Nat, c: Bool, w: Word(n)) -> {internal_shl_val(n, Nat.pow(2n, n), Word.shl.out(n, c, w)) == Nat.add(internal_bv(c), Nat.double(Word.to_nat(n, w))) : Nat}:
792  match n:
793    case 0n:
794      match c:
795        case False{}:
796          match w:
797            case WNil{}:
798              {==}
799        case True{}:
800          match w:
801            case WNil{}:
802              {==}
803    case 1n++p:
804      match w:
805        case WCon{+b, +t}:
806          %internal_to_nat_con(p, b, t) : {internal_shl_val(1n+p, Nat.pow(2n, 1n+p), Word.shl.out(1n+p, c, WCon{b, t})) == Nat.add(internal_bv(c), Nat.double(_)) : Nat}
807          internal_shl_con(p, c, Word.shl.out(p, b, t), Nat.add(internal_bv(b), Nat.double(Word.to_nat(p, t))), internal_shl_out(p, b, t))

Uses (14)

Used by (1)