reserve fi,psi for Ordinal-Sequence,
  A,A1,B,C,D for Ordinal,
  X,Y for set,
  x,y for object;

theorem
  (A*^B)*^C = A*^(B*^C)
proof
  defpred P[Ordinal] means ($1*^B)*^C = $1*^(B*^C);
A1: {}*^C = {} by ORDINAL2:35;
A2: for A st P[A] holds P[succ A]
  proof
    let A such that
A3: (A*^B)*^C = A*^(B*^C);
    thus ((succ A)*^B)*^C = (A*^B+^B)*^C by ORDINAL2:36
      .= A*^(B*^C)+^B*^C by A3,Th46
      .= A*^(B*^C)+^1*^(B*^C) by ORDINAL2:39
      .= (A+^1)*^(B*^C) by Th46
      .= (succ A)*^(B*^C) by ORDINAL2:31;
  end;
A4: for A st A <> 0 & A is limit_ordinal & for D st D in A holds P[D] holds
  P[A]
  proof
    let A such that
A5: A <> 0 and
A6: A is limit_ordinal and
A7: for D st D in A holds (D*^B)*^C = D*^(B*^C);
A8: now
      deffunc F(Ordinal) = $1 *^ B;
      assume that
A9:   1 in B and
A10:  1 in C;
      consider fi such that
A11:  dom fi = A & for D st D in A holds fi.D = F(D) from ORDINAL2:
      sch 3;
A12:  dom(fi*^C) = A & for D st D in A holds (fi*^C).D = D*^(B*^C)
      proof
        thus dom(fi*^C) = A by A11,Def4;
        let D;
        assume
A13:    D in A;
        then
A14:    fi.D = D*^B by A11;
        (fi*^C).D = (fi.D)*^C by A11,A13,Def4;
        hence thesis by A7,A13,A14;
      end;
      1 = 1*^1 by ORDINAL2:39;
      then 1 in B*^C by A9,A10,Th19;
      then
A15:  A*^(B*^C) = sup(fi*^C) by A5,A6,A12,Th49;
      A*^B = sup fi by A5,A6,A9,A11,Th49;
      hence thesis by A5,A6,A10,A11,A15,Th40,Th44;
    end;
    now
      assume not (1 in B & 1 in C);
      then
A16:  B = {} or B = 1 or C = {} or C = 1 by Th16,ORDINAL1:16;
A17:  {}*^C = {} by ORDINAL2:35;
A18:  A*^B*^1 = A*^B by ORDINAL2:39;
A19:  (A*^B)*^{} = {} by ORDINAL2:38;
A20:  A*^1 = A by ORDINAL2:39;
      A*^{} = {} by ORDINAL2:38;
      hence thesis by A16,A17,A20,A19,A18,ORDINAL2:38,39;
    end;
    hence thesis by A8;
  end;
  {}*^B = {} by ORDINAL2:35;
  then
A21: P[0] by A1,ORDINAL2:35;
  for A holds P[A] from ORDINAL2:sch 1(A21,A2,A4);
  hence thesis;
end;
