def internal_u32_sub_wrap

bend-mathlib@0.8.1.0 · u32.bend:648

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

648def internal_u32_sub_wrap(-m: Nat, a: U32, b: U32, e: {Nat.pow(2n, 32n) == m : Nat}) -> {U32.to_nat(U32.sub(a, b)) == Nat.mod(Nat.add(U32.to_nat(a), Nat.sub(m, U32.to_nat(b))), m) : Nat}:
649  match a b:
650    case U32{+x} U32{+y}:
651      %e : {Word.to_nat(32n, Word.sub(32n, x, y)) == Nat.mod(Nat.add(Word.to_nat(32n, x), Nat.sub(_, Word.to_nat(32n, y))), _) : Nat}
652      word_sub_wrap(32n, x, y)

Uses (11)

Used by (2)