
theorem Th20:
  for R being left_zeroed right_zeroed right_add-cancelable
add-associative distributive non empty doubleLoopStr, a,b being Element of R,
  n being Element of NAT holds b * (n * a) = (b * a) * n
proof
  let R be left_zeroed right_zeroed add-associative right_add-cancelable
  distributive non empty doubleLoopStr, a,b be Element of R, n be Element of
  NAT;
  defpred P[Nat] means b * ($1 * a) = (b * a) * $1;
A1: now
    let k be Nat;
    reconsider kk=k as Element of NAT by ORDINAL1:def 12;
    assume
A2: P[k];
    b * ((kk+1)* a) = b * (a + k * a) by Def3
      .= b * a + (b * a) * k by A2,VECTSP_1:def 2
      .= (b * a) * 1 + (b * a) * k by Th14
      .= (b * a) * (kk + 1) by Th16;
    hence P[k+1];
  end;
  b * (0 * a) = b * 0.R by Def3
    .= 0.R by Th2
    .= (b * a) * 0 by Def4;
  then
A3: P[0];
  for n being Nat holds P[n] from NAT_1:sch 2(A3,A1);
  hence thesis;
end;
