fricas
(1) -> n:=2
fricas
T:=CartesianTensor(1,n,FRAC POLY INT)
Type: Type
fricas
Y:T := unravel concat concat
  [[[script(y,[[i,j],[k]])
    for i in 1..n]
      for j in 1..n]
        for k in 1..n]
Type: CartesianTensor
?(1,
2,
Fraction(Polynomial(Integer)))
 
fricas
A:T := unravel(concat concat
  [[[script(a,[[k],[i,j]])
    for k in 1..n]
      for i in 1..n]
        for j in 1..n]
          )
Type: CartesianTensor
?(1,
2,
Fraction(Polynomial(Integer)))
 
fricas
YA:=contract(reindex(Y,[1,3,2])*A,2,3)
Type: CartesianTensor
?(1,
2,
Fraction(Polynomial(Integer)))
 
fricas
B:T := unravel concat
  [[script(b,[[i],[j]])
    for i in 1..n]
      for j in 1..n]
Type: CartesianTensor
?(1,
2,
Fraction(Polynomial(Integer)))
 
fricas
YAB:=concat [[YA[i,j]=B[i,j] for i in 1..n] for j in 1..n]
Type: List(Equation(Fraction(Polynomial(Integer))))