def offset_pair

bendtorch-core@0.1.0.0 · src/tensor/matrix_index_proof.bend:178

import bendtorch-core@0.1.0.0/src/tensor/matrix_index_proof.bend as MatrixIndexProof
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/shape/nat_proofs.bend as Nats
import bendtorch-core@0.1.0.0/src/tensor/word_conversion.bend as Conversion

178def offset_pair(+a: Nat, +b: Nat, +first: Nat, +second: Nat) ->
179  {Shape.offset([first, second], [a, b]) == Nat.add(Nat.mul(a, second), b) : Nat}:
180  %Equal.sym(Nat, Nat.mul(second, 1n), second, Nats.mul_one_right(second)) :
181    {Nat.add(Nat.mul(a, _), Nat.add(Nat.mul(b, 1n), 0n)) == Nat.add(Nat.mul(a, second), b) : Nat}
182  %Equal.sym(Nat, Nat.mul(b, 1n), b, Nats.mul_one_right(b)) :
183    {Nat.add(Nat.mul(a, second), Nat.add(_, 0n)) == Nat.add(Nat.mul(a, second), b) : Nat}
184  %Equal.sym(Nat, Nat.add(b, 0n), b, Conversion.add_zero(b)) :
185    {Nat.add(Nat.mul(a, second), _) == Nat.add(Nat.mul(a, second), b) : Nat}
186  {==}

Uses (8)

Used by (1)