def q_one
bend-collections-laws-crypto@1.0.0.0 · proofs/math/random/uint64n.bend:34
import bend-collections-laws-crypto@1.0.0.0/proofs/math/random/uint64n.bend as Uint64n
import Base
import bend-collections-laws-crypto@1.0.0.0/spec/lib/common.bend as C
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/logic.bend as L
34def q_one(+q: Nat, +one: Nat, +h1: {one == 1n : Nat}, +c: Bool, +hc: {Nat.is_eq(q, 0n) == c : Bool}, +hq0: {c == False{} : Bool}, +hq1: {C.fits(1n, q) == True{} : Bool}) -> {q == one : Nat}:
35 match q:
36 case 0n:
37 Empty.absurd({0n == one : Nat}, L.true_false(Equal.trans(Bool, True{}, c, False{}, hc, hq0)))
38 case 1n:
39 Equal.sym(Nat, one, 1n, h1)
40 case 2n+r:
41 Empty.absurd({2n+r == one : Nat}, L.false_true(hq1))