src/tensor/elementwise_LAWS.bend
bendtorch-core@0.1.0.0 · 27 lines · 3 definitions
1import Base
2import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
3import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core
4import bendtorch-core@0.1.0.0/src/tensor/elementwise.bend as Elementwise
5import bendtorch-core@0.1.0.0/src/tensor/elementwise_totality.bend as Totality
6
7law binary_retains_inputs:
8 for +operation: Elementwise.Operation
9 for left: Core.Dynamic
10 for right: Core.Dynamic
11 Totality.Retention<left, right, Elementwise.binary(operation, left, right)>
12
13law binary_successful_output_dimensions:
14 for +operation: Elementwise.Operation
15 for left: Core.Dynamic
16 for right: Core.Dynamic
17 for +output: List<&2, U32>
18 for +alignment: Shape.Broadcast<Shape.extents(Totality.dynamic_shape(left)), Shape.extents(Totality.dynamic_shape(right)), Shape.naturals(output)>
19 Totality.DimensionsModel<output, Elementwise.binary(operation, left, right)>
20
21law binary_valid_success:
22 for +operation: Elementwise.Operation
23 for left: Core.Dynamic
24 for right: Core.Dynamic
25 for +output: List<&2, U32>
26 for +compatible: Totality.Compatible<left, right, output>
27 Totality.Success<Elementwise.binary(operation, left, right)>