law step

stelliferous@0.0.2.0 · proofs/u32_division.bend:45

import stelliferous@0.0.2.0/proofs/u32_division.bend as U32Division
import Base
import stelliferous@0.0.2.0/proofs/binary_division.bend as BinaryDivision

45law step:
46  for +p: Nat
47  for +bit: Bool
48  for +b: U32
49  for +cap: U32
50  for +cap_ok: {U32.is_le(cap,2147483648) == True{} : Bool}
51  for +divisor_bound: {Nat.is_le(Nat.double(U32.to_nat(b)),U32.to_nat(cap)) == True{} : Bool}
52  for pair: Word(p) & U32
53  for small: {Nat.is_lt(BinaryDivision.remainder(decode(p,pair)),U32.to_nat(b)) == True{} : Bool}
54  {decode(1n+p,U32.divmod.go.rec(p,bit,b,pair)) == BinaryDivision.step(bit,U32.to_nat(b),decode(p,pair)) : BinaryDivision.Quotient}

Uses (37)

Used by (1)