def mo_of

bend-collections-laws-math@1.0.0.0 · proofs/math/typed/u32int.bend:207

import bend-collections-laws-math@1.0.0.0/proofs/math/typed/u32int.bend as U32int
import Base
import bend-collections-laws-math@1.0.0.0/spec/lib/common.bend as C
import bend-collections-laws-math@1.0.0.0/src/math/num.bend as NM
import bend-collections-laws-math@1.0.0.0/src/math/instances.bend as I
import bend-collections-laws-math@1.0.0.0/proofs/math/typed/u32laws.bend as LW

207def mo_of(+q: U32, +b: U32, +n: Nat, +hn: {Nat.mul(v(q), v(b)) == n : Nat}, +c: Bool, +hc: {C.fits(32n, n) == c : Bool}) -> {I.u32_is(NM.MulOver{q, b}) == Bool.not(c) : Bool}:
208  +e1 = Equal.trans(Bool, I.u32_is(NM.MulOver{q, b}), Bool.not(C.fits(32n, Nat.mul(v(q), v(b)))), Bool.not(C.fits(32n, n)), LW.tests_mul_over(q, b), Equal.cong(Nat, Bool, t => Bool.not(C.fits(32n, t)), Nat.mul(v(q), v(b)), n, hn))
209  Equal.trans(Bool, I.u32_is(NM.MulOver{q, b}), Bool.not(C.fits(32n, n)), Bool.not(c), e1, Equal.cong(Bool, Bool, t => Bool.not(t), C.fits(32n, n), c, hc))

Uses (12)

Used by (5)