reserve i,j,k,n,m for Nat,
        b,b1,b2 for bag of n;

theorem Th20:
  for O being Ordinal,
      L being well-unital commutative associative non trivial
        doubleLoopStr, x being Function of O, L, b being bag of O
   for perm being Permutation of O holds
      eval(b,x) = eval(b*perm,x*perm)
proof
  let n be Ordinal, L be well-unital commutative associative non trivial
  doubleLoopStr, x be Function of n, L, b be bag of n;
  let perm be Permutation of n;
  set SG=SgmX(RelIncl n, support b);
  consider y be FinSequence of L such that
A1: len y = len SG & eval(b,x) = Product y and
A2: for i being Element of NAT st 1 <= i & i <= len y holds
  y/.i = power(L).((x * SG)/.i,(b * SG)/.i) by POLYNOM2:def 2;
A3:RelIncl n linearly_orders support b by PRE_POLY:82;
A4:SG is one-to-one & len SG = card support b by PRE_POLY:10,11,82;
A5:rng SG = support b by A3,PRE_POLY:def 2;
  set P=perm";
A6:dom perm=n=rng perm & dom P=n=rng P by FUNCT_2:52,def 3;
A7: rng (P*SG) c= support (b*perm)
  proof
    let y be object such that
A8:   y in rng (P*SG);
    consider w be object such that
A9:   w in dom (P*SG) & (P*SG).w=y by A8,FUNCT_1:def 3;
A10: w in dom SG & y = P.(SG.w) & SG.w in dom P by A9,FUNCT_1:11,12;
    then
A11: y in rng P by FUNCT_1:def 3;
A12: SG.w = perm.y by A10,FUNCT_1:35,A6;
    SG.w in support b by A5,A10,FUNCT_1:def 3;
    then
A13: b.(perm.y)<>0 by A12,PRE_POLY:def 7;
    b.(perm.y)= (b*perm).y by A11,A6,FUNCT_1:13;
    hence thesis by A13,PRE_POLY:def 7;
  end;
A14:support (b*perm) c= rng (P*SG)
  proof
    let x be object such that
A15:x in support (b*perm);
A16:(b*perm).x <>0 by A15,PRE_POLY:def 7;
    then x in dom (b*perm) by FUNCT_1:def 2;
    then
A17:x in dom perm & perm.x in dom b & (b*perm).x = b.(perm.x)
      by FUNCT_1:11,12;
    then A18: x= P.(perm.x) & perm.x in support b
      by A16,FUNCT_1:34,PRE_POLY:def 7;
    then consider w be object such that
    A19: w in dom SG & SG.w = perm.x by A5,FUNCT_1:def 3;
    w in dom (P*SG) & (P*SG).w = P.(SG.w) by A6,A17,A19,FUNCT_1:11,13;
    hence thesis by A18,A19,FUNCT_1:def 3;
  end;
  reconsider S=P*SG as one-to-one FinSequence of n by A4;
  consider Y be FinSequence of L such that
  A20:len Y = card support (b*perm) &
  eval(b*perm,x*perm) = Product Y and
  A21: for i being Nat st 1 <= i & i <= len Y holds
  Y/.i = power(L).(((x*perm)*S)/.i, ((b*perm)*S)/.i)
    by Th19,A7,XBOOLE_0:def 10,A14;
  A22: len Y = len y by A20,A1,A4,Th2;
  for i being Nat st 1 <= i & i <= len Y holds Y.i = y.i
  proof
    let i be Nat such that A23:1<=i <= len Y;
    A24: rng perm = n by FUNCT_2:def 3;
    A25:n c= dom x & n = dom b by PARTFUN1:def 2;
    A26:(x*perm)*S = (x*perm)*P*SG by RELAT_1:36
    .= x*(perm*P)*SG by RELAT_1:36
    .= x*(id n)*SG by A24, FUNCT_1:39
    .= x*SG by A25,RELAT_1:51;
    A27:(b*perm)*S = (b*perm)*P*SG by RELAT_1:36
    .= b*(perm*P)*SG by RELAT_1:36
    .= b*(id n)*SG by A24, FUNCT_1:39
    .= b*SG by A25,RELAT_1:51;
    A28: i in dom y & i in dom Y by A22,A23,FINSEQ_3:25;
    hence Y.i = Y/.i by PARTFUN1:def 6
    .= power(L).(((x*perm)*S)/.i, ((b*perm)*S)/.i) by A21,A23
    .= y/.i by A2,A23,A28,A22,A27,A26
    .= y.i by A28,PARTFUN1:def 6;
  end;
  hence thesis by A20,A1,A4,Th2,FINSEQ_1:14;
end;
