def mul_pow

bend-collections-laws-crypto@1.0.0.0 · proofs/math/natural/arith.bend:187

import bend-collections-laws-crypto@1.0.0.0/proofs/math/natural/arith.bend as Arith
import Base

187# (x y)^k == x^k y^k   (Mathlib mul_pow)
188def mul_pow(+x: Nat, +y: Nat, +k: Nat) -> {Nat.pow(Nat.mul(x, y), k) == Nat.mul(Nat.pow(x, k), Nat.pow(y, k)) : Nat}:
189  match k:
190    case 0n:
191      {==}
192    case 1n+ +kp:
193      %Equal.sym(Nat, Nat.pow(Nat.mul(x, y), kp), Nat.mul(Nat.pow(x, kp), Nat.pow(y, kp)), mul_pow(x, y, kp)) : {Nat.mul(Nat.mul(x, y), _) == Nat.mul(Nat.mul(x, Nat.pow(x, kp)), Nat.mul(y, Nat.pow(y, kp))) : Nat}
194      mul_swap4(x, y, Nat.pow(x, kp), Nat.pow(y, kp))

Uses (5)

Used by (1)