reserve i,j,k,n,m for Nat,
        X for set,
        b,s for bag of X,
        x for object;

theorem
  for n be Ordinal,
      L be right_zeroed add-associative right_complementable
              well-unital distributive Abelian non trivial commutative
              associative non empty doubleLoopStr
   for x being Function of n, L
     for b be bag of n, i be Nat st i<>0
holds
   eval(i (#) b,x) = (power L) . (eval(b,x) , i)
proof
  let n be Ordinal,
      L be right_zeroed add-associative right_complementable
              well-unital distributive Abelian non trivial commutative
              associative non empty doubleLoopStr;
  let x be Function of n, L;
  let b be bag of n;
    defpred P[Nat] means
    $1 <> 0 implies eval($1 (#) b,x) = (power L) . (eval(b,x) , $1);
A1: P[0];
A2: P[j] implies P[j+1]
  proof
    assume
A3: P[j];
    assume j+1<>0;
    per cases;
    suppose
A4:   j=0;
      hence eval((j+1) (#) b,x) = eval(b,x) by RFUNCT_1:21
      .= (power L) . (eval(b,x), j+1) by A4,GROUP_1:50;
    end;
    suppose
A5:   j<>0;
      thus eval((j+1) (#) b,x) = eval( (j (#) b)+(1(#)b),x) by TOPREALC:2
      .= eval(j (#) b,x) * eval(1(#)b,x) by POLYNOM2:16
      .= (power L) . (eval(b,x), j) * eval(b,x) by A5,A3,RFUNCT_1:21
      .= (power L) . (eval(b,x), j+1) by GROUP_1:def 7;
    end;
  end;
  P[j] from NAT_1:sch 2(A1,A2);
  hence thesis;
end;
