Consts.s258: def of bend-collections-laws-crypto@1.0.0.0 Import: import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/curve25519/consts.bend as Consts Lines 80-87 of bend-collections-laws-crypto@1.0.0.0/proofs/crypto/curve25519/consts.bend: https://jend.leeeet.dev/read.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/crypto/curve25519/consts.bend&start_line=80&end_line=87 import Base import bend-collections-laws-crypto@1.0.0.0/proofs/lib/word.bend as WD import bend-collections-laws-crypto@1.0.0.0/proofs/lib/arith.bend as AR import bend-collections-laws-crypto@1.0.0.0/proofs/lib/lemmas/proofs/nat_algebra.bend as NA # 2^258 == 8 p + 152 def s258(+one: Nat, +h1: {one == 1n : Nat}, +pp: Nat, +hP: {Nat.add(1n+pp, 19n) == WD.sc(255n, one) : Nat}) -> {WD.sc(258n, one) == Nat.add(Nat.mul(8n, 1n+pp), 152n) : Nat}: +X = WD.sc(255n, one) +P = {1n+pp : Nat} +e1 = Equal.trans(Nat, WD.sc(3n, X), Nat.mul(X, 8n), Nat.mul(8n, X), Equal.sym(Nat, Nat.mul(X, 8n), WD.sc(3n, X), AR.mul_sc(3n, X)), NA.mul_comm(X, 8n)) +e2 = Equal.cong(Nat, Nat, t => Nat.mul(8n, t), X, Nat.add(P, 19n), Equal.sym(Nat, Nat.add(P, 19n), X, hP)) +e3 = NA.mul_add_left(8n, P, 19n) Equal.trans(Nat, WD.sc(3n, X), Nat.mul(8n, X), Nat.add(Nat.mul(8n, P), 152n), e1, Equal.trans(Nat, Nat.mul(8n, X), Nat.mul(8n, Nat.add(P, 19n)), Nat.add(Nat.mul(8n, P), 152n), e2, e3)) Uses (10): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.cong https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.trans https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.mul https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/lib/arith.bend&name=mul_sc https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/lib/lemmas/proofs/nat_algebra.bend&name=mul_add_left https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/lib/lemmas/proofs/nat_algebra.bend&name=mul_comm https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/lib/word.bend&name=sc