def add_cancel
import bend-collections-laws-crypto@1.0.0.0/proofs/math/natural/arith.bend as Arithimport Base
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/nat.bend as N
40# c + a == c + b gives a == b (Mathlib Nat.add_left_cancel)
41def add_cancel(+c: Nat, +a: Nat, +b: Nat, +e: {Nat.add(c, a) == Nat.add(c, b) : Nat}) -> {a == b : Nat}:
42 match c:
43 case 0n:
44 e
45 case 1n+ +cp:
46 add_cancel(cp, a, b, N.succ_inj(Nat.add(cp, a), Nat.add(cp, b), e))
Uses (3)
Used by (15)
- bend-collections-laws-crypto@1.0.0.0/proofs/crypto/curve25519/cong:cancel_r
- bend-collections-laws-crypto@1.0.0.0/proofs/math/natural/arith:mul_cancel
- bend-collections-laws-crypto@1.0.0.0/proofs/crypto/curve25519/pow:cancel_r
- bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/password:long_len
- bend-collections-laws-crypto@1.0.0.0/proofs/crypto/curve25519/consts:eight_p_val
- …