def codec_decoded

bendtorch-core@0.1.0.0 · src/tensor/permutation_mapping.bend:45

import bendtorch-core@0.1.0.0/src/tensor/permutation_mapping.bend as PermutationMapping
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/tensor/layout.bend as Layout
import bendtorch-core@0.1.0.0/src/shape/coordinate_proofs.bend as Coordinates

45def codec_decoded(+dimensions: List<&2, U32>, +index: U32) ->
46  {Layout.reverse_words(Layout.unflatten_words(Layout.reverse_words(dimensions), index)) ==
47    Shape.words(Shape.digits(Shape.naturals(dimensions), U32.to_nat(index))) : List<&2, U32>}:
48  Equal.trans(List<&2, U32>, Layout.reverse_words(Layout.unflatten_words(Layout.reverse_words(dimensions), index)),
49    Shape.words(Shape.digits_words(dimensions, U32.to_nat(index))),
50    Shape.words(Shape.digits(Shape.naturals(dimensions), U32.to_nat(index))),
51    Equal.trans(List<&2, U32>, Layout.reverse_words(Layout.unflatten_words(Layout.reverse_words(dimensions), index)),
52      Layout.reverse_words(Layout.reverse_words(Shape.words(Shape.digits_words(dimensions, U32.to_nat(index))))),
53      Shape.words(Shape.digits_words(dimensions, U32.to_nat(index))),
54      Equal.cong(List<&2, U32>, List<&2, U32>, dims =>
55        Layout.reverse_words(Layout.reverse_words(Shape.words(Shape.digits_words(dims, U32.to_nat(index))))),
56        Layout.reverse_words(Layout.reverse_words(dimensions)), dimensions, reverse_involution(dimensions)),
57      reverse_involution(Shape.words(Shape.digits_words(dimensions, U32.to_nat(index))))),
58    Equal.cong(List<&2, Nat>, List<&2, U32>, Shape.words, Shape.digits_words(dimensions, U32.to_nat(index)),
59      Shape.digits(Shape.naturals(dimensions), U32.to_nat(index)), Coordinates.digits_words_spec(dimensions, U32.to_nat(index))))

Uses (14)

Used by (4)