law pk.m
lawful-words@0.1.0.0 · proof_bytes.bend:1496
import lawful-words@0.1.0.0/proof_bytes.bend as ProofBytes
import Base
import lawful-words@0.1.0.0/defs.bend as D
1496law pk.m:
1497 for +b0: U32
1498 for +b1: U32
1499 for +b2: U32
1500 for +b3: U32
1501 for +a: Nat
1502 for +m: Nat
1503 for +ha: {Nat.pow(2n, 8n) == a : Nat}
1504 for +hm: {Nat.pow(2n, 32n) == m : Nat}
1505 for +h0: {Nat.is_lt(U32.to_nat(b0), a) == True{} : Bool}
1506 for +h1: {Nat.is_lt(U32.to_nat(b1), a) == True{} : Bool}
1507 for +h2: {Nat.is_lt(U32.to_nat(b2), a) == True{} : Bool}
1508 for +h3: {Nat.is_lt(U32.to_nat(b3), a) == True{} : Bool}
1509 {U32.to_nat(D.pack4(b0, b1, b2, b3)) == Nat.add(U32.to_nat(b0), Nat.add(Nat.mul(U32.to_nat(b1), a),
1510 Nat.add(Nat.mul(U32.to_nat(b2), Nat.mul(a, a)), Nat.mul(U32.to_nat(b3), Nat.mul(Nat.mul(a, a), a))))) : Nat}