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}

Uses (32)

Used by (1)