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))

Uses (9)

Used by (1)