def mul_swap
bendtorch-core@0.1.0.0 · src/tensor/axis_algebra.bend:209
import bendtorch-core@0.1.0.0/src/tensor/axis_algebra.bend as AxisAlgebra
import Base
import bendtorch-core@0.1.0.0/src/shape/nat_proofs.bend as Nats
209def mul_swap(+a: Nat, +b: Nat, +c: Nat) -> {Nat.mul(a, Nat.mul(b, c)) == Nat.mul(b, Nat.mul(a, c)) : Nat}:
210 Equal.trans(Nat, Nat.mul(a, Nat.mul(b, c)), Nat.mul(Nat.mul(a, b), c), Nat.mul(b, Nat.mul(a, c)),
211 Equal.sym(Nat, Nat.mul(Nat.mul(a, b), c), Nat.mul(a, Nat.mul(b, c)), Nats.mul_assoc(a, b, c)),
212 Equal.trans(Nat, Nat.mul(Nat.mul(a, b), c), Nat.mul(Nat.mul(b, a), c), Nat.mul(b, Nat.mul(a, c)),
213 Equal.cong(Nat, Nat, n => Nat.mul(n, c), Nat.mul(a, b), Nat.mul(b, a), Nats.mul_comm(a, b)), Nats.mul_assoc(b, a, c)))