def wv.qs
bend-osdev-word64@0.1.1.0 · proof_value.bend:294
import bend-osdev-word64@0.1.1.0/proof_value.bend as ProofValue
import Base
import bend-osdev-u32@0.1.0.0/u32.bend as U
import bend-osdev-u32@0.1.0.0/LAWS.bend as UL
294
295def wv.qs(+n: Nat, +x: Nat) -> {wv.Q(n, 1n+x) == Nat.add(wv.Q(n, 1n), wv.Q(n, x)) : Nat}:
296 Equal.trans(Nat, U.U32Nat.dbl(n, U.U32Nat.dbl(n, 1n+x)), U.U32Nat.dbl(n, Nat.add(U.U32Nat.dbl(n, 1n), U.U32Nat.dbl(n, x))), Nat.add(U.U32Nat.dbl(n, U.U32Nat.dbl(n, 1n)), U.U32Nat.dbl(n, U.U32Nat.dbl(n, x))), Equal.cong(Nat, Nat, v => U.U32Nat.dbl(n, v), U.U32Nat.dbl(n, 1n+x), Nat.add(U.U32Nat.dbl(n, 1n), U.U32Nat.dbl(n, x)), UL.dbl_add(n, 1n, x)), UL.dbl_add(n, U.U32Nat.dbl(n, 1n), U.U32Nat.dbl(n, x)))