Tensor.cat_eq: def of bendtorch@1.3.0.0 Import: import bendtorch@1.3.0.0/tensor.bend as Tensor Lines 563-574 of bendtorch@1.3.0.0/tensor.bend: https://jend.leeeet.dev/read.txt?path=bendtorch@1.3.0.0/tensor.bend&start_line=563&end_line=574 import Base # a and b have the same rank, and the same sizes on every axis but d def cat_eq(a: List<&2, Nat>, b: List<&2, Nat>, d: Nat) -> Bool: match a b d: case Nil{} Nil{} _: True{} case Con{x, ra} Con{y, rb} 0n: same(ra, rb) case Con{+x, ra} Con{+y, rb} 1n+p: # bend-lint: disable-next bend-lint-rules/performance/eager_branch -- a shape predicate over a list of rank <= 4, once per operation; the types and LAWS.bend read its Bool form not-expected-because: a match would change the definition the proofs reduce, for no measurable gain Bool.and(Nat.is_eq(x, y), cat_eq(ra, rb, p)) case _ _ _: False{} Uses (6): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.is_eq https://jend.leeeet.dev/definition.txt?path=bendtorch@1.3.0.0/tensor.bend&name=same