def right_rank_clash

bendtorch-core@0.1.0.0 · src/tensor/matmul_PROOF.bend:1086

import bendtorch-core@0.1.0.0/src/tensor/matmul_PROOF.bend as MatmulPROOF
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/storage/arith.bend as Arith

1086def right_rank_clash(+left: Shape.Shape, +right: Shape.Shape, +dimensions: List<&2, U32>,
1087  +same: {dimensions == Shape.dimensions(right) : List<&2, U32>}, +different: {Nat.is_eq(Shape.rank_dimensions(dimensions), 2n) == False{} : Bool},
1088  +rank: {Shape.rank_dimensions(Shape.dimensions(right)) == 2n : Nat}) -> Empty:
1089  Arith.clash(Equal.trans(Bool, False{}, Nat.is_eq(Shape.rank_dimensions(dimensions), 2n), True{},
1090    Equal.sym(Bool, Nat.is_eq(Shape.rank_dimensions(dimensions), 2n), False{}, different),
1091    Equal.cong(Nat, Bool, n => Nat.is_eq(n, 2n), Shape.rank_dimensions(dimensions), 2n,
1092      Equal.trans(Nat, Shape.rank_dimensions(dimensions), Shape.rank_dimensions(Shape.dimensions(right)), 2n,
1093        Equal.cong(List<&2, U32>, Nat, Shape.rank_dimensions, dimensions, Shape.dimensions(right), same), rank))))

Uses (13)

Used by (1)