**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[*]) to ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(12)<1> [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22] },
    { Sub: Ten<i2>(12)<1> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Mul: Ten<i2>(12)<1> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121] },
    { Div: Ten<i2>(12)<1> [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] },
    { Min: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Max: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*], U:i2[*,*]) to ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[0, 2, 4, 6]
           [4, 6, 8, 10]
           [8, 10, 12, 14]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [-4, -4, -4, -4]
           [-8, -8, -8, -8]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 1, 4, 9]
           [0, 5, 12, 21]
           [0, 9, 20, 33]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 1, 1, 1]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [0, 1, 2, 3]
           [0, 1, 2, 3]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[*]) to ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(4)<1> [0, 2, 4, 6] },
    { Sub: Ten<i2>(4)<1> [0, 0, 0, 0] },
    { Mul: Ten<i2>(4)<1> [0, 1, 4, 9] },
    { Div: Ten<i2>(4)<1> [0, 1, 1, 1] },
    { Min: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Max: Ten<i2>(4)<1> [0, 1, 2, 3] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[*]) to ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>(12)<1> [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] },
    { Sub: Ten<i2>(12)<1> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] },
    { Mul: Ten<i2>(12)<1> [0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11] },
    { Div: Ten<i2>(12)<1> [0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11] },
    { Min: Ten<i2>(12)<1> [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] },
    { Max: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Sub: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Mul: Ten<i2>(12)<0> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Div: Ten<i2>(12)<0> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Min: Ten<i2>(12)<1> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Max: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>(12)<1> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] },
    { Sub: Ten<i2>(12)<1> [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] },
    { Mul: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Div: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Min: Ten<i2>(12)<1> [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] },
    { Max: Ten<i2>(12)<1> [1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>(12)<1> [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] },
    { Sub: Ten<i2>(12)<1> [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6] },
    { Mul: Ten<i2>(12)<1> [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55] },
    { Div: Ten<i2>(12)<1> [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2] },
    { Min: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5] },
    { Max: Ten<i2>(12)<1> [5, 5, 5, 5, 5, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*], U:i2[*,*]) to ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[5, 6, 7, 8]
           [5, 6, 7, 8]
           [5, 6, 7, 8]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[-5, -4, -3, -2]
           [-5, -4, -3, -2]
           [-5, -4, -3, -2]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 5, 10, 15]
           [0, 5, 10, 15]
           [0, 5, 10, 15]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [0, 1, 2, 3]
           [0, 1, 2, 3]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>(12)<1> [-32768, -32767, -32766, -32765, -32764, -32763, -32762, -32761, -32760, -32759, -32758, -32757] },
    { Sub: Ten<i2>(12)<1> [-32768, -32767, -32766, -32765, -32764, -32763, -32762, -32761, -32760, -32759, -32758, -32757] },
    { Mul: Ten<i2>(12)<1> [0, -32768, 0, -32768, 0, -32768, 0, -32768, 0, -32768, 0, -32768] },
    { Div: Ten<i2>(12)<1> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Min: Ten<i2>(12)<0> [-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768] },
    { Max: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>(12)<1> [32767, -32768, -32767, -32766, -32765, -32764, -32763, -32762, -32761, -32760, -32759, -32758] },
    { Sub: Ten<i2>(12)<1> [-32767, -32766, -32765, -32764, -32763, -32762, -32761, -32760, -32759, -32758, -32757, -32756] },
    { Mul: Ten<i2>(12)<1> [0, 32767, -2, 32765, -4, 32763, -6, 32761, -8, 32759, -10, 32757] },
    { Div: Ten<i2>(12)<1> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Min: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Max: Ten<i2>(12)<0> [32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767] })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[*]) to ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(3,4)<4,1>
          [[0, 2, 4, 6]
           [4, 6, 8, 10]
           [8, 10, 12, 14]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [4, 4, 4, 4]
           [8, 8, 8, 8]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 1, 4, 9]
           [0, 5, 12, 21]
           [0, 9, 20, 33]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 1, 1, 1]
           [0, 5, 3, 2]
           [0, 9, 5, 3]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [0, 1, 2, 3]
           [0, 1, 2, 3]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[*,*]) to ({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[0, 2, 4, 6]
           [8, 10, 12, 14]
           [16, 18, 20, 22]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 1, 4, 9]
           [16, 25, 36, 49]
           [64, 81, 100, 121]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 1, 1, 1]
           [1, 1, 1, 1]
           [1, 1, 1, 1]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[*]) to ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(3,4)<4,1>
          [[0, 2, 4, 6]
           [4, 6, 8, 10]
           [8, 10, 12, 14]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [4, 4, 4, 4]
           [8, 8, 8, 8]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 1, 4, 9]
           [0, 5, 12, 21]
           [0, 9, 20, 33]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 1, 1, 1]
           [0, 5, 3, 2]
           [0, 9, 5, 3]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [0, 1, 2, 3]
           [0, 1, 2, 3]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[*]) to ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(3,0)<0,0> [] },
    { Sub: Ten<i2>(3,0)<0,0> [] },
    { Mul: Ten<i2>(3,0)<0,0> [] },
    { Div: Ten<i2>(3,0)<0,0> [] },
    { Min: Ten<i2>(3,0)<0,0> [] },
    { Max: Ten<i2>(3,0)<0,0> [] })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>(3,4)<4,1>
          [[-1, 0, 1, 2]
           [3, 4, 5, 6]
           [7, 8, 9, 10]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[1, 2, 3, 4]
           [5, 6, 7, 8]
           [9, 10, 11, 12]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, -1, -2, -3]
           [-4, -5, -6, -7]
           [-8, -9, -10, -11]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, -1, -2, -3]
           [-4, -5, -6, -7]
           [-8, -9, -10, -11]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[-1, -1, -1, -1]
           [-1, -1, -1, -1]
           [-1, -1, -1, -1]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>(3,4)<4,1>
          [[1, 2, 3, 4]
           [5, 6, 7, 8]
           [9, 10, 11, 12]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[-1, 0, 1, 2]
           [3, 4, 5, 6]
           [7, 8, 9, 10]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 1, 1]
           [1, 1, 1, 1]
           [1, 1, 1, 1]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[1, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>(3,4)<4,1>
          [[5, 6, 7, 8]
           [9, 10, 11, 12]
           [13, 14, 15, 16]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[-5, -4, -3, -2]
           [-1, 0, 1, 2]
           [3, 4, 5, 6]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 5, 10, 15]
           [20, 25, 30, 35]
           [40, 45, 50, 55]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [0, 1, 1, 1]
           [1, 1, 2, 2]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[5, 5, 5, 5]
           [5, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[*,*]) to ({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[5, 6, 7, 8]
           [9, 10, 11, 12]
           [13, 14, 15, 16]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[-5, -4, -3, -2]
           [-1, 0, 1, 2]
           [3, 4, 5, 6]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 5, 10, 15]
           [20, 25, 30, 35]
           [40, 45, 50, 55]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [0, 1, 1, 1]
           [1, 1, 2, 2]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[5, 5, 5, 5]
           [5, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>(3,4)<4,1>
          [[-32768, -32767, -32766, -32765]
           [-32764, -32763, -32762, -32761]
           [-32760, -32759, -32758, -32757]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[-32768, -32767, -32766, -32765]
           [-32764, -32763, -32762, -32761]
           [-32760, -32759, -32758, -32757]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, -32768, 0, -32768]
           [0, -32768, 0, -32768]
           [0, -32768, 0, -32768]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>(3,4)<4,1>
          [[32767, -32768, -32767, -32766]
           [-32765, -32764, -32763, -32762]
           [-32761, -32760, -32759, -32758]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[-32767, -32766, -32765, -32764]
           [-32763, -32762, -32761, -32760]
           [-32759, -32758, -32757, -32756]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 32767, -2, 32765]
           [-4, 32763, -6, 32761]
           [-8, 32759, -10, 32757]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[32767, 32767, 32767, 32767]
           [32767, 32767, 32767, 32767]
           [32767, 32767, 32767, 32767]]
    })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[*]) to ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(4)<1> [0, 2, 4, 6] },
    { Sub: Ten<i2>(4)<1> [0, 0, 0, 0] },
    { Mul: Ten<i2>(4)<1> [0, 1, 4, 9] },
    { Div: Ten<i2>(4)<1> [0, 1, 1, 1] },
    { Min: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Max: Ten<i2>(4)<1> [0, 1, 2, 3] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*], U:i2[*,*]) to ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[0, 2, 4, 6]
           [4, 6, 8, 10]
           [8, 10, 12, 14]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [-4, -4, -4, -4]
           [-8, -8, -8, -8]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 1, 4, 9]
           [0, 5, 12, 21]
           [0, 9, 20, 33]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 1, 1, 1]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [0, 1, 2, 3]
           [0, 1, 2, 3]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[*]) to ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(4)<1> [0, 2, 4, 6] },
    { Sub: Ten<i2>(4)<1> [0, 0, 0, 0] },
    { Mul: Ten<i2>(4)<1> [0, 1, 4, 9] },
    { Div: Ten<i2>(4)<1> [0, 1, 1, 1] },
    { Min: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Max: Ten<i2>(4)<1> [0, 1, 2, 3] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[*]) to ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>(4)<1> [-1, 0, 1, 2] },
    { Sub: Ten<i2>(4)<1> [1, 2, 3, 4] },
    { Mul: Ten<i2>(4)<1> [0, -1, -2, -3] },
    { Div: Ten<i2>(4)<1> [0, -1, -2, -3] },
    { Min: Ten<i2>(4)<1> [-1, -1, -1, -1] },
    { Max: Ten<i2>(4)<1> [0, 1, 2, 3] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Sub: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Mul: Ten<i2>(4)<0> [0, 0, 0, 0] },
    { Div: Ten<i2>(4)<0> [0, 0, 0, 0] },
    { Min: Ten<i2>(4)<1> [0, 0, 0, 0] },
    { Max: Ten<i2>(4)<1> [0, 1, 2, 3] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>(4)<1> [1, 2, 3, 4] },
    { Sub: Ten<i2>(4)<1> [-1, 0, 1, 2] },
    { Mul: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Div: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Min: Ten<i2>(4)<1> [0, 1, 1, 1] },
    { Max: Ten<i2>(4)<1> [1, 1, 2, 3] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>(4)<1> [5, 6, 7, 8] },
    { Sub: Ten<i2>(4)<1> [-5, -4, -3, -2] },
    { Mul: Ten<i2>(4)<1> [0, 5, 10, 15] },
    { Div: Ten<i2>(4)<1> [0, 0, 0, 0] },
    { Min: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Max: Ten<i2>(4)<1> [5, 5, 5, 5] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*], U:i2[*,*]) to ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[5, 6, 7, 8]
           [5, 6, 7, 8]
           [5, 6, 7, 8]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[-5, -4, -3, -2]
           [-5, -4, -3, -2]
           [-5, -4, -3, -2]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 5, 10, 15]
           [0, 5, 10, 15]
           [0, 5, 10, 15]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [0, 1, 2, 3]
           [0, 1, 2, 3]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>(4)<1> [-32768, -32767, -32766, -32765] },
    { Sub: Ten<i2>(4)<1> [-32768, -32767, -32766, -32765] },
    { Mul: Ten<i2>(4)<1> [0, -32768, 0, -32768] },
    { Div: Ten<i2>(4)<1> [0, 0, 0, 0] },
    { Min: Ten<i2>(4)<0> [-32768, -32768, -32768, -32768] },
    { Max: Ten<i2>(4)<1> [0, 1, 2, 3] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(4)<1> [0, 1, 2, 3] },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>(4)<1> [32767, -32768, -32767, -32766] },
    { Sub: Ten<i2>(4)<1> [-32767, -32766, -32765, -32764] },
    { Mul: Ten<i2>(4)<1> [0, 32767, -2, 32765] },
    { Div: Ten<i2>(4)<1> [0, 0, 0, 0] },
    { Min: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Max: Ten<i2>(4)<0> [32767, 32767, 32767, 32767] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[*]) to ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*], U:i2[*,*]) to ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,0)<0,0> [] },
    { Sub: Ten<i2>(3,0)<0,0> [] },
    { Mul: Ten<i2>(3,0)<0,0> [] },
    { Div: Ten<i2>(3,0)<0,0> [] },
    { Min: Ten<i2>(3,0)<0,0> [] },
    { Max: Ten<i2>(3,0)<0,0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[*]) to ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[*]) to ({'  T':i2[*]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*], U:i2[*,*]) to ({'  T':i2[*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,0)<0,0> [] },
    { Sub: Ten<i2>(3,0)<0,0> [] },
    { Mul: Ten<i2>(3,0)<0,0> [] },
    { Div: Ten<i2>(3,0)<0,0> [] },
    { Min: Ten<i2>(3,0)<0,0> [] },
    { Max: Ten<i2>(3,0)<0,0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[*], U:i2[]) to ({'  T':i2[*]}, {'  U':i2[]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(0)<0> [] },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(12)<1> [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] },
    { Sub: Ten<i2>(12)<1> [-1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12] },
    { Mul: Ten<i2>(12)<1> [0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11] },
    { Div: Ten<i2>(12)<1> [0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Min: Ten<i2>(12)<1> [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] },
    { Max: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[-1, 0, 1, 2]
           [3, 4, 5, 6]
           [7, 8, 9, 10]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[-1, -2, -3, -4]
           [-5, -6, -7, -8]
           [-9, -10, -11, -12]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, -1, -2, -3]
           [-4, -5, -6, -7]
           [-8, -9, -10, -11]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, -1, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[-1, -1, -1, -1]
           [-1, -1, -1, -1]
           [-1, -1, -1, -1]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(4)<1> [-1, 0, 1, 2] },
    { Sub: Ten<i2>(4)<1> [-1, -2, -3, -4] },
    { Mul: Ten<i2>(4)<1> [0, -1, -2, -3] },
    { Div: Ten<i2>(4)<1> [0, -1, 0, 0] },
    { Min: Ten<i2>(4)<1> [-1, -1, -1, -1] },
    { Max: Ten<i2>(4)<1> [0, 1, 2, 3] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>()<> [-2] },
    { Sub: Ten<i2>()<> [0] },
    { Mul: Ten<i2>()<> [1] },
    { Div: Ten<i2>()<> [1] },
    { Min: Ten<i2>()<> [-1] },
    { Max: Ten<i2>()<> [-1] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>()<> [-1] },
    { Sub: Ten<i2>()<> [-1] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [-1] },
    { Max: Ten<i2>()<> [0] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>()<> [0] },
    { Sub: Ten<i2>()<> [-2] },
    { Mul: Ten<i2>()<> [-1] },
    { Div: Ten<i2>()<> [-1] },
    { Min: Ten<i2>()<> [-1] },
    { Max: Ten<i2>()<> [1] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>()<> [4] },
    { Sub: Ten<i2>()<> [-6] },
    { Mul: Ten<i2>()<> [-5] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [-1] },
    { Max: Ten<i2>()<> [5] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,4)<0,0>
          [[4, 4, 4, 4]
           [4, 4, 4, 4]
           [4, 4, 4, 4]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[-6, -6, -6, -6]
           [-6, -6, -6, -6]
           [-6, -6, -6, -6]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[-5, -5, -5, -5]
           [-5, -5, -5, -5]
           [-5, -5, -5, -5]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[-1, -1, -1, -1]
           [-1, -1, -1, -1]
           [-1, -1, -1, -1]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>()<> [32767] },
    { Sub: Ten<i2>()<> [32767] },
    { Mul: Ten<i2>()<> [-32768] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [-1] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-1] },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>()<> [32766] },
    { Sub: Ten<i2>()<> [-32768] },
    { Mul: Ten<i2>()<> [-32767] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [-1] },
    { Max: Ten<i2>()<> [32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Sub: Ten<i2>(12)<1> [0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11] },
    { Mul: Ten<i2>(12)<0> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Div: Ten<i2>(12)<0> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Min: Ten<i2>(12)<1> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Max: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[0, -1, -2, -3]
           [-4, -5, -6, -7]
           [-8, -9, -10, -11]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Sub: Ten<i2>(4)<1> [0, -1, -2, -3] },
    { Mul: Ten<i2>(4)<0> [0, 0, 0, 0] },
    { Div: Ten<i2>(4)<0> [0, 0, 0, 0] },
    { Min: Ten<i2>(4)<1> [0, 0, 0, 0] },
    { Max: Ten<i2>(4)<1> [0, 1, 2, 3] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>()<> [-1] },
    { Sub: Ten<i2>()<> [1] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [-1] },
    { Max: Ten<i2>()<> [0] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>()<> [0] },
    { Sub: Ten<i2>()<> [0] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [0] },
    { Max: Ten<i2>()<> [0] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>()<> [1] },
    { Sub: Ten<i2>()<> [-1] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [0] },
    { Max: Ten<i2>()<> [1] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>()<> [5] },
    { Sub: Ten<i2>()<> [-5] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [0] },
    { Max: Ten<i2>()<> [5] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[-5, -5, -5, -5]
           [-5, -5, -5, -5]
           [-5, -5, -5, -5]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>()<> [-32768] },
    { Sub: Ten<i2>()<> [-32768] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [0] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [0] },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>()<> [32767] },
    { Sub: Ten<i2>()<> [-32767] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [0] },
    { Max: Ten<i2>()<> [32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(12)<1> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] },
    { Sub: Ten<i2>(12)<1> [1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10] },
    { Mul: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Div: Ten<i2>(12)<1> [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
    { Min: Ten<i2>(12)<1> [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] },
    { Max: Ten<i2>(12)<1> [1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[1, 2, 3, 4]
           [5, 6, 7, 8]
           [9, 10, 11, 12]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[1, 0, -1, -2]
           [-3, -4, -5, -6]
           [-7, -8, -9, -10]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 1, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 1, 1]
           [1, 1, 1, 1]
           [1, 1, 1, 1]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[1, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(4)<1> [1, 2, 3, 4] },
    { Sub: Ten<i2>(4)<1> [1, 0, -1, -2] },
    { Mul: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Div: Ten<i2>(4)<1> [0, 1, 0, 0] },
    { Min: Ten<i2>(4)<1> [0, 1, 1, 1] },
    { Max: Ten<i2>(4)<1> [1, 1, 2, 3] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>()<> [0] },
    { Sub: Ten<i2>()<> [2] },
    { Mul: Ten<i2>()<> [-1] },
    { Div: Ten<i2>()<> [-1] },
    { Min: Ten<i2>()<> [-1] },
    { Max: Ten<i2>()<> [1] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>()<> [1] },
    { Sub: Ten<i2>()<> [1] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [0] },
    { Max: Ten<i2>()<> [1] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>()<> [2] },
    { Sub: Ten<i2>()<> [0] },
    { Mul: Ten<i2>()<> [1] },
    { Div: Ten<i2>()<> [1] },
    { Min: Ten<i2>()<> [1] },
    { Max: Ten<i2>()<> [1] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>()<> [6] },
    { Sub: Ten<i2>()<> [-4] },
    { Mul: Ten<i2>()<> [5] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [1] },
    { Max: Ten<i2>()<> [5] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,4)<0,0>
          [[6, 6, 6, 6]
           [6, 6, 6, 6]
           [6, 6, 6, 6]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[-4, -4, -4, -4]
           [-4, -4, -4, -4]
           [-4, -4, -4, -4]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[1, 1, 1, 1]
           [1, 1, 1, 1]
           [1, 1, 1, 1]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>()<> [-32767] },
    { Sub: Ten<i2>()<> [-32767] },
    { Mul: Ten<i2>()<> [-32768] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [1] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [1] },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>()<> [-32768] },
    { Sub: Ten<i2>()<> [-32766] },
    { Mul: Ten<i2>()<> [32767] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [1] },
    { Max: Ten<i2>()<> [32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(12)<1> [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] },
    { Sub: Ten<i2>(12)<1> [5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6] },
    { Mul: Ten<i2>(12)<1> [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55] },
    { Div: Ten<i2>(12)<1> [0, 5, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0] },
    { Min: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5] },
    { Max: Ten<i2>(12)<1> [5, 5, 5, 5, 5, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[5, 6, 7, 8]
           [9, 10, 11, 12]
           [13, 14, 15, 16]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[5, 4, 3, 2]
           [1, 0, -1, -2]
           [-3, -4, -5, -6]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 5, 10, 15]
           [20, 25, 30, 35]
           [40, 45, 50, 55]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 5, 2, 1]
           [1, 1, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[5, 5, 5, 5]
           [5, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(4)<1> [5, 6, 7, 8] },
    { Sub: Ten<i2>(4)<1> [5, 4, 3, 2] },
    { Mul: Ten<i2>(4)<1> [0, 5, 10, 15] },
    { Div: Ten<i2>(4)<1> [0, 5, 2, 1] },
    { Min: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Max: Ten<i2>(4)<1> [5, 5, 5, 5] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>()<> [4] },
    { Sub: Ten<i2>()<> [6] },
    { Mul: Ten<i2>()<> [-5] },
    { Div: Ten<i2>()<> [-5] },
    { Min: Ten<i2>()<> [-1] },
    { Max: Ten<i2>()<> [5] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>()<> [5] },
    { Sub: Ten<i2>()<> [5] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [0] },
    { Max: Ten<i2>()<> [5] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>()<> [6] },
    { Sub: Ten<i2>()<> [4] },
    { Mul: Ten<i2>()<> [5] },
    { Div: Ten<i2>()<> [5] },
    { Min: Ten<i2>()<> [1] },
    { Max: Ten<i2>()<> [5] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>()<> [10] },
    { Sub: Ten<i2>()<> [0] },
    { Mul: Ten<i2>()<> [25] },
    { Div: Ten<i2>()<> [1] },
    { Min: Ten<i2>()<> [5] },
    { Max: Ten<i2>()<> [5] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,4)<0,0>
          [[10, 10, 10, 10]
           [10, 10, 10, 10]
           [10, 10, 10, 10]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[25, 25, 25, 25]
           [25, 25, 25, 25]
           [25, 25, 25, 25]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[1, 1, 1, 1]
           [1, 1, 1, 1]
           [1, 1, 1, 1]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>()<> [-32763] },
    { Sub: Ten<i2>()<> [-32763] },
    { Mul: Ten<i2>()<> [-32768] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [5] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [5] },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>()<> [-32764] },
    { Sub: Ten<i2>()<> [-32762] },
    { Mul: Ten<i2>()<> [32763] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [5] },
    { Max: Ten<i2>()<> [32767] })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[*]) to ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(3,4)<4,1>
          [[5, 6, 7, 8]
           [5, 6, 7, 8]
           [5, 6, 7, 8]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[5, 4, 3, 2]
           [5, 4, 3, 2]
           [5, 4, 3, 2]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 5, 10, 15]
           [0, 5, 10, 15]
           [0, 5, 10, 15]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 5, 2, 1]
           [0, 5, 2, 1]
           [0, 5, 2, 1]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [0, 1, 2, 3]
           [0, 1, 2, 3]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[*,*]) to ({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[5, 6, 7, 8]
           [9, 10, 11, 12]
           [13, 14, 15, 16]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[5, 4, 3, 2]
           [1, 0, -1, -2]
           [-3, -4, -5, -6]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 5, 10, 15]
           [20, 25, 30, 35]
           [40, 45, 50, 55]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 5, 2, 1]
           [1, 1, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[5, 5, 5, 5]
           [5, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[*]) to ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(3,4)<4,1>
          [[5, 6, 7, 8]
           [5, 6, 7, 8]
           [5, 6, 7, 8]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[5, 4, 3, 2]
           [5, 4, 3, 2]
           [5, 4, 3, 2]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 5, 10, 15]
           [0, 5, 10, 15]
           [0, 5, 10, 15]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 5, 2, 1]
           [0, 5, 2, 1]
           [0, 5, 2, 1]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [0, 1, 2, 3]
           [0, 1, 2, 3]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[*]) to ({'  T':i2[*,*]}, {'  U':i2[*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(3,0)<0,0> [] },
    { Sub: Ten<i2>(3,0)<0,0> [] },
    { Mul: Ten<i2>(3,0)<0,0> [] },
    { Div: Ten<i2>(3,0)<0,0> [] },
    { Min: Ten<i2>(3,0)<0,0> [] },
    { Max: Ten<i2>(3,0)<0,0> [] })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>(3,4)<0,0>
          [[4, 4, 4, 4]
           [4, 4, 4, 4]
           [4, 4, 4, 4]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[6, 6, 6, 6]
           [6, 6, 6, 6]
           [6, 6, 6, 6]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[-5, -5, -5, -5]
           [-5, -5, -5, -5]
           [-5, -5, -5, -5]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[-5, -5, -5, -5]
           [-5, -5, -5, -5]
           [-5, -5, -5, -5]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[-1, -1, -1, -1]
           [-1, -1, -1, -1]
           [-1, -1, -1, -1]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>(3,4)<0,0>
          [[6, 6, 6, 6]
           [6, 6, 6, 6]
           [6, 6, 6, 6]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[4, 4, 4, 4]
           [4, 4, 4, 4]
           [4, 4, 4, 4]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[1, 1, 1, 1]
           [1, 1, 1, 1]
           [1, 1, 1, 1]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>(3,4)<0,0>
          [[10, 10, 10, 10]
           [10, 10, 10, 10]
           [10, 10, 10, 10]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[25, 25, 25, 25]
           [25, 25, 25, 25]
           [25, 25, 25, 25]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[1, 1, 1, 1]
           [1, 1, 1, 1]
           [1, 1, 1, 1]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[*,*]) to ({'  T':i2[*,*]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,4)<0,0>
          [[10, 10, 10, 10]
           [10, 10, 10, 10]
           [10, 10, 10, 10]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[25, 25, 25, 25]
           [25, 25, 25, 25]
           [25, 25, 25, 25]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[1, 1, 1, 1]
           [1, 1, 1, 1]
           [1, 1, 1, 1]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>(3,4)<0,0>
          [[-32763, -32763, -32763, -32763]
           [-32763, -32763, -32763, -32763]
           [-32763, -32763, -32763, -32763]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[-32763, -32763, -32763, -32763]
           [-32763, -32763, -32763, -32763]
           [-32763, -32763, -32763, -32763]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[*,*]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[*,*], U:i2[]) to ({'  T':i2[*,*]}, {'  U':i2[]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>(3,4)<0,0>
          [[-32764, -32764, -32764, -32764]
           [-32764, -32764, -32764, -32764]
           [-32764, -32764, -32764, -32764]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[-32762, -32762, -32762, -32762]
           [-32762, -32762, -32762, -32762]
           [-32762, -32762, -32762, -32762]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[32763, 32763, 32763, 32763]
           [32763, 32763, 32763, 32763]
           [32763, 32763, 32763, 32763]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[0, 0, 0, 0]
           [0, 0, 0, 0]
           [0, 0, 0, 0]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[32767, 32767, 32767, 32767]
           [32767, 32767, 32767, 32767]
           [32767, 32767, 32767, 32767]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(12)<1> [-32768, -32767, -32766, -32765, -32764, -32763, -32762, -32761, -32760, -32759, -32758, -32757] },
    { Sub: Ten<i2>(12)<1> [-32768, 32767, 32766, 32765, 32764, 32763, 32762, 32761, 32760, 32759, 32758, 32757] },
    { Mul: Ten<i2>(12)<1> [0, -32768, 0, -32768, 0, -32768, 0, -32768, 0, -32768, 0, -32768] },
    { Div: Ten<i2>(12)<1> [0, -32768, -16384, -10922, -8192, -6553, -5461, -4681, -4096, -3640, -3276, -2978] },
    { Min: Ten<i2>(12)<0> [-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768] },
    { Max: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[-32768, -32767, -32766, -32765]
           [-32764, -32763, -32762, -32761]
           [-32760, -32759, -32758, -32757]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[-32768, 32767, 32766, 32765]
           [32764, 32763, 32762, 32761]
           [32760, 32759, 32758, 32757]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, -32768, 0, -32768]
           [0, -32768, 0, -32768]
           [0, -32768, 0, -32768]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, -32768, -16384, -10922]
           [-8192, -6553, -5461, -4681]
           [-4096, -3640, -3276, -2978]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]]
    },
    { Max: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(4)<1> [-32768, -32767, -32766, -32765] },
    { Sub: Ten<i2>(4)<1> [-32768, 32767, 32766, 32765] },
    { Mul: Ten<i2>(4)<1> [0, -32768, 0, -32768] },
    { Div: Ten<i2>(4)<1> [0, -32768, -16384, -10922] },
    { Min: Ten<i2>(4)<0> [-32768, -32768, -32768, -32768] },
    { Max: Ten<i2>(4)<1> [0, 1, 2, 3] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>()<> [32767] },
    { Sub: Ten<i2>()<> [-32767] },
    { Mul: Ten<i2>()<> [-32768] },
    { Div: Ten<i2>()<> [-32768] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [-1] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>()<> [-32768] },
    { Sub: Ten<i2>()<> [-32768] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [0] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>()<> [-32767] },
    { Sub: Ten<i2>()<> [32767] },
    { Mul: Ten<i2>()<> [-32768] },
    { Div: Ten<i2>()<> [-32768] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [1] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>()<> [-32763] },
    { Sub: Ten<i2>()<> [32763] },
    { Mul: Ten<i2>()<> [-32768] },
    { Div: Ten<i2>()<> [-6553] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [5] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,4)<0,0>
          [[-32763, -32763, -32763, -32763]
           [-32763, -32763, -32763, -32763]
           [-32763, -32763, -32763, -32763]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[32763, 32763, 32763, 32763]
           [32763, 32763, 32763, 32763]
           [32763, 32763, 32763, 32763]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[-6553, -6553, -6553, -6553]
           [-6553, -6553, -6553, -6553]
           [-6553, -6553, -6553, -6553]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]
           [-32768, -32768, -32768, -32768]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>()<> [0] },
    { Sub: Ten<i2>()<> [0] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [1] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [-32768] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [-32768] },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>()<> [-1] },
    { Sub: Ten<i2>()<> [1] },
    { Mul: Ten<i2>()<> [-32768] },
    { Div: Ten<i2>()<> [-1] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Add: Ten<i2>(12)<1> [32767, -32768, -32767, -32766, -32765, -32764, -32763, -32762, -32761, -32760, -32759, -32758] },
    { Sub: Ten<i2>(12)<1> [32767, 32766, 32765, 32764, 32763, 32762, 32761, 32760, 32759, 32758, 32757, 32756] },
    { Mul: Ten<i2>(12)<1> [0, 32767, -2, 32765, -4, 32763, -6, 32761, -8, 32759, -10, 32757] },
    { Div: Ten<i2>(12)<1> [0, 32767, 16383, 10922, 8191, 6553, 5461, 4681, 4095, 3640, 3276, 2978] },
    { Min: Ten<i2>(12)<1> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] },
    { Max: Ten<i2>(12)<0> [32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Add: Ten<i2>(3,4)<4,1>
          [[32767, -32768, -32767, -32766]
           [-32765, -32764, -32763, -32762]
           [-32761, -32760, -32759, -32758]]
    },
    { Sub: Ten<i2>(3,4)<4,1>
          [[32767, 32766, 32765, 32764]
           [32763, 32762, 32761, 32760]
           [32759, 32758, 32757, 32756]]
    },
    { Mul: Ten<i2>(3,4)<4,1>
          [[0, 32767, -2, 32765]
           [-4, 32763, -6, 32761]
           [-8, 32759, -10, 32757]]
    },
    { Div: Ten<i2>(3,4)<4,1>
          [[0, 32767, 16383, 10922]
           [8191, 6553, 5461, 4681]
           [4095, 3640, 3276, 2978]]
    },
    { Min: Ten<i2>(3,4)<4,1>
          [[0, 1, 2, 3]
           [4, 5, 6, 7]
           [8, 9, 10, 11]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[32767, 32767, 32767, 32767]
           [32767, 32767, 32767, 32767]
           [32767, 32767, 32767, 32767]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Add: Ten<i2>(4)<1> [32767, -32768, -32767, -32766] },
    { Sub: Ten<i2>(4)<1> [32767, 32766, 32765, 32764] },
    { Mul: Ten<i2>(4)<1> [0, 32767, -2, 32765] },
    { Div: Ten<i2>(4)<1> [0, 32767, 16383, 10922] },
    { Min: Ten<i2>(4)<1> [0, 1, 2, 3] },
    { Max: Ten<i2>(4)<0> [32767, 32767, 32767, 32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*])}):({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]}))
Func sig: (T:i2[], U:i2[*]) to ({'  T':i2[]}, {'  U':i2[*]}, {Add:i2[*]}, {Sub:i2[*]}, {Mul:i2[*]}, {Div:i2[*]}, {Min:i2[*]}, {Max:i2[*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>(0)<0> [] },
    { Add: Ten<i2>(0)<0> [] },
    { Sub: Ten<i2>(0)<0> [] },
    { Mul: Ten<i2>(0)<0> [] },
    { Div: Ten<i2>(0)<0> [] },
    { Min: Ten<i2>(0)<0> [] },
    { Max: Ten<i2>(0)<0> [] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>()<> [-1] },
    { Add: Ten<i2>()<> [32766] },
    { Sub: Ten<i2>()<> [-32768] },
    { Mul: Ten<i2>()<> [-32767] },
    { Div: Ten<i2>()<> [-32767] },
    { Min: Ten<i2>()<> [-1] },
    { Max: Ten<i2>()<> [32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>()<> [0] },
    { Add: Ten<i2>()<> [32767] },
    { Sub: Ten<i2>()<> [32767] },
    { Mul: Ten<i2>()<> [0] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [0] },
    { Max: Ten<i2>()<> [32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>()<> [1] },
    { Add: Ten<i2>()<> [-32768] },
    { Sub: Ten<i2>()<> [32766] },
    { Mul: Ten<i2>()<> [32767] },
    { Div: Ten<i2>()<> [32767] },
    { Min: Ten<i2>()<> [1] },
    { Max: Ten<i2>()<> [32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>()<> [5] },
    { Add: Ten<i2>()<> [-32764] },
    { Sub: Ten<i2>()<> [32762] },
    { Mul: Ten<i2>()<> [32763] },
    { Div: Ten<i2>()<> [6553] },
    { Min: Ten<i2>()<> [5] },
    { Max: Ten<i2>()<> [32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[*,*]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[*,*])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[*,*])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[*,*])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[*,*])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[*,*])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[*,*])}):({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]}))
Func sig: (T:i2[], U:i2[*,*]) to ({'  T':i2[]}, {'  U':i2[*,*]}, {Add:i2[*,*]}, {Sub:i2[*,*]}, {Mul:i2[*,*]}, {Div:i2[*,*]}, {Min:i2[*,*]}, {Max:i2[*,*]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Add: Ten<i2>(3,4)<0,0>
          [[-32764, -32764, -32764, -32764]
           [-32764, -32764, -32764, -32764]
           [-32764, -32764, -32764, -32764]]
    },
    { Sub: Ten<i2>(3,4)<0,0>
          [[32762, 32762, 32762, 32762]
           [32762, 32762, 32762, 32762]
           [32762, 32762, 32762, 32762]]
    },
    { Mul: Ten<i2>(3,4)<0,0>
          [[32763, 32763, 32763, 32763]
           [32763, 32763, 32763, 32763]
           [32763, 32763, 32763, 32763]]
    },
    { Div: Ten<i2>(3,4)<0,0>
          [[6553, 6553, 6553, 6553]
           [6553, 6553, 6553, 6553]
           [6553, 6553, 6553, 6553]]
    },
    { Min: Ten<i2>(3,4)<0,0>
          [[5, 5, 5, 5]
           [5, 5, 5, 5]
           [5, 5, 5, 5]]
    },
    { Max: Ten<i2>(3,4)<0,0>
          [[32767, 32767, 32767, 32767]
           [32767, 32767, 32767, 32767]
           [32767, 32767, 32767, 32767]]
    })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>()<> [-32768] },
    { Add: Ten<i2>()<> [-1] },
    { Sub: Ten<i2>()<> [-1] },
    { Mul: Ten<i2>()<> [-32768] },
    { Div: Ten<i2>()<> [0] },
    { Min: Ten<i2>()<> [-32768] },
    { Max: Ten<i2>()<> [32767] })
###

**** New definitions: T, type: i2[]
**** New definitions: U, type: i2[]

> ({'  T': T }, {'  U': U }, {'Add': T->Add(U) }, {'Sub': T->Sub(U) }, {'Mul': T->Mul(U) }, {'Div': T->Div(U) }, {'Min': T->Min(U) }, {'Max': T->Max(U) })
({ '  T' : T }, { '  U' : U }, { 'Add' : T->Add(U) }, { 'Sub' : T->Sub(U) }, { 'Mul' : T->Mul(U) }, { 'Div' : T->Div(U) }, { 'Min' : T->Min(U) }, { 'Max' : T->Max(U) }) : ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
BndKind:Tuple, Type:({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}), Bnd:(({  T:Global(T)}, {  U:Global(U)}, {Add:Call(∂.Tensor.Add(Global(T), Global(U)):i2[])}, {Sub:Call(∂.Tensor.Sub(Global(T), Global(U)):i2[])}, {Mul:Call(∂.Tensor.Mul(Global(T), Global(U)):i2[])}, {Div:Call(∂.Tensor.Div(Global(T), Global(U)):i2[])}, {Min:Call(∂.Tensor.Min(Global(T), Global(U)):i2[])}, {Max:Call(∂.Tensor.Max(Global(T), Global(U)):i2[])}):({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]}))
Func sig: (T:i2[], U:i2[]) to ({'  T':i2[]}, {'  U':i2[]}, {Add:i2[]}, {Sub:i2[]}, {Mul:i2[]}, {Div:i2[]}, {Min:i2[]}, {Max:i2[]})
Type: ({Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>},{Ten<i2>}), Value: (
    {   T: Ten<i2>()<> [32767] },
    {   U: Ten<i2>()<> [32767] },
    { Add: Ten<i2>()<> [-2] },
    { Sub: Ten<i2>()<> [0] },
    { Mul: Ten<i2>()<> [1] },
    { Div: Ten<i2>()<> [1] },
    { Min: Ten<i2>()<> [32767] },
    { Max: Ten<i2>()<> [32767] })
###
