def fit_0123
bendtorch-core@0.1.0.0 · src/tensor/axis_algebra.bend:776
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/core.bend as Shape
import bendtorch-core@0.1.0.0/src/tensor/axis_spec.bend as Axis
776def fit_0123(+dims: List<&2, Nat>, +coords: List<&2, Nat>, dl: {List.length(&2, Nat, dims) == 4n : Nat}, cl: {List.length(&2, Nat, coords) == 4n : Nat}) -> {Shape.fit(Axis.order(Nat, dims, [0n, 1n, 2n, 3n]), Axis.order(Nat, coords, [0n, 1n, 2n, 3n])) == Shape.fit(dims, coords) : Bool}:
777 match dims:
778 case Nil{}:
779 Empty.absurd({Shape.fit(Axis.order(Nat, Nil{}, [0n, 1n, 2n, 3n]), Axis.order(Nat, coords, [0n, 1n, 2n, 3n])) == Shape.fit(Nil{}, coords) : Bool}, nat_clash(0n, 4n, dl, {==}))
780 case +d0 <> Nil{}:
781 Empty.absurd({Shape.fit(Axis.order(Nat, d0 <> Nil{}, [0n, 1n, 2n, 3n]), Axis.order(Nat, coords, [0n, 1n, 2n, 3n])) == Shape.fit(d0 <> Nil{}, coords) : Bool}, nat_clash(1n, 4n, dl, {==}))
782 case +d0 <> +d1 <> Nil{}:
783 Empty.absurd({Shape.fit(Axis.order(Nat, d0 <> d1 <> Nil{}, [0n, 1n, 2n, 3n]), Axis.order(Nat, coords, [0n, 1n, 2n, 3n])) == Shape.fit(d0 <> d1 <> Nil{}, coords) : Bool}, nat_clash(2n, 4n, dl, {==}))
784 case +d0 <> +d1 <> +d2 <> Nil{}:
785 Empty.absurd({Shape.fit(Axis.order(Nat, d0 <> d1 <> d2 <> Nil{}, [0n, 1n, 2n, 3n]), Axis.order(Nat, coords, [0n, 1n, 2n, 3n])) == Shape.fit(d0 <> d1 <> d2 <> Nil{}, coords) : Bool}, nat_clash(3n, 4n, dl, {==}))
786 case +d0 <> +d1 <> +d2 <> +d3 <> Nil{}:
787 match coords:
788 case Nil{}:
789 Empty.absurd({Shape.fit(Axis.order(Nat, d0 <> d1 <> d2 <> d3 <> Nil{}, [0n, 1n, 2n, 3n]), Axis.order(Nat, Nil{}, [0n, 1n, 2n, 3n])) == Shape.fit(d0 <> d1 <> d2 <> d3 <> Nil{}, Nil{}) : Bool}, nat_clash(0n, 4n, cl, {==}))
790 case +c0 <> Nil{}:
791 Empty.absurd({Shape.fit(Axis.order(Nat, d0 <> d1 <> d2 <> d3 <> Nil{}, [0n, 1n, 2n, 3n]), Axis.order(Nat, c0 <> Nil{}, [0n, 1n, 2n, 3n])) == Shape.fit(d0 <> d1 <> d2 <> d3 <> Nil{}, c0 <> Nil{}) : Bool}, nat_clash(1n, 4n, cl, {==}))
792 case +c0 <> +c1 <> Nil{}:
793 Empty.absurd({Shape.fit(Axis.order(Nat, d0 <> d1 <> d2 <> d3 <> Nil{}, [0n, 1n, 2n, 3n]), Axis.order(Nat, c0 <> c1 <> Nil{}, [0n, 1n, 2n, 3n])) == Shape.fit(d0 <> d1 <> d2 <> d3 <> Nil{}, c0 <> c1 <> Nil{}) : Bool}, nat_clash(2n, 4n, cl, {==}))
794 case +c0 <> +c1 <> +c2 <> Nil{}:
795 Empty.absurd({Shape.fit(Axis.order(Nat, d0 <> d1 <> d2 <> d3 <> Nil{}, [0n, 1n, 2n, 3n]), Axis.order(Nat, c0 <> c1 <> c2 <> Nil{}, [0n, 1n, 2n, 3n])) == Shape.fit(d0 <> d1 <> d2 <> d3 <> Nil{}, c0 <> c1 <> c2 <> Nil{}) : Bool}, nat_clash(3n, 4n, cl, {==}))
796 case +c0 <> +c1 <> +c2 <> +c3 <> Nil{}:
797 {==}
798 case +c0 <> +c1 <> +c2 <> +c3 <> +c4 <> +ct:
799 Empty.absurd({Shape.fit(Axis.order(Nat, d0 <> d1 <> d2 <> d3 <> Nil{}, [0n, 1n, 2n, 3n]), Axis.order(Nat, c0 <> c1 <> c2 <> c3 <> c4 <> ct, [0n, 1n, 2n, 3n])) == Shape.fit(d0 <> d1 <> d2 <> d3 <> Nil{}, c0 <> c1 <> c2 <> c3 <> c4 <> ct) : Bool}, nat_clash(5n+List.length(&2, Nat, ct), 4n, cl, {==}))
800 case +d0 <> +d1 <> +d2 <> +d3 <> +d4 <> +dt:
801 Empty.absurd({Shape.fit(Axis.order(Nat, d0 <> d1 <> d2 <> d3 <> d4 <> dt, [0n, 1n, 2n, 3n]), Axis.order(Nat, coords, [0n, 1n, 2n, 3n])) == Shape.fit(d0 <> d1 <> d2 <> d3 <> d4 <> dt, coords) : Bool}, nat_clash(5n+List.length(&2, Nat, dt), 4n, dl, {==}))