reserve phi,fi,psi for Ordinal-Sequence,
  A,A1,B,C,D for Ordinal,
  f,g for Function,
  X for set,
  x,y,z for object;
reserve f1,f2 for Ordinal-Sequence;

theorem
  exp(exp(C,A),B) = exp(C,B*^A)
proof
  defpred P[Ordinal] means exp(exp(C,A),$1) = exp(C,$1*^A);
A1: exp(C,{}) = 1 by ORDINAL2:43;
A2: for B st P[B] holds P[succ B]
  proof
    let B;
    assume exp(exp(C,A),B) = exp(C,B*^A);
    hence exp(exp(C,A),succ B) = exp(C,A)*^exp(C,B*^A) by ORDINAL2:44
      .= exp(C,B*^A+^A) by Th30
      .= exp(C,(succ B)*^A) by ORDINAL2:36;
  end;
A3: for B st B <> 0 & B is limit_ordinal & for D st D in B holds P[D] holds
  P[B]
  proof
    deffunc F(Ordinal) = exp(exp(C,A),$1);
    let B;
    assume that
A4: B <> 0 and
A5: B is limit_ordinal and
A6: for D st D in B holds exp(exp(C,A),D) = exp(C,D*^A);
    consider fi such that
A7: dom fi = B & for D st D in B holds fi.D = F(D) from ORDINAL2:sch
    3;
    deffunc F(Ordinal) = $1*^A;
    consider f1 such that
A8: dom f1 = B & for D st D in B holds f1.D = F(D) from ORDINAL2:sch
    3;
    deffunc F(Ordinal) = exp(C,$1);
    consider f2 such that
A9: dom f2 = B*^A & for D st D in B*^A holds f2.D = F(D) from
    ORDINAL2:sch 3;
A10: now
      assume
A11:  A <> {};
      then B*^A <> {} by A4,ORDINAL3:31;
      then
A12:  exp(C,B*^A) is_limes_of f2 by A5,A9,Th21,ORDINAL3:40;
A13:  rng f1 c= dom f2
      proof
        let x be object;
        assume x in rng f1;
        then consider y being object such that
A14:    y in dom f1 and
A15:    x = f1.y by FUNCT_1:def 3;
        reconsider y as Ordinal by A14;
        x = y*^A by A8,A14,A15;
        hence thesis by A8,A9,A11,A14,ORDINAL2:40;
      end;
A16:  sup rng f1 = dom f2
      proof
        sup rng f1 c= sup dom f2 by A13,ORDINAL2:22;
        hence sup rng f1 c= dom f2 by ORDINAL2:18;
        let x be object;
        assume
A17:    x in dom f2;
        then reconsider D = x as Ordinal;
        consider A1 such that
A18:    A1 in B and
A19:    D in A1*^A by A5,A9,A17,ORDINAL3:41;
        f1.A1 = A1*^A by A8,A18;
        then A1*^A in rng f1 by A8,A18,FUNCT_1:def 3;
        then A1*^A in sup rng f1 by ORDINAL2:19;
        hence thesis by A19,ORDINAL1:10;
      end;
A20:  dom(f2*f1) = B
      proof
        thus dom(f2*f1) c= B by A8,RELAT_1:25;
        let x be object;
        assume
A21:    x in B;
        then reconsider E = x as Ordinal;
A22:    f1.E = E*^A by A8,A21;
        E*^A in B*^A by A11,A21,ORDINAL2:40;
        hence thesis by A8,A9,A21,A22,FUNCT_1:11;
      end;
      now
        let x be object;
        assume
A23:    x in B;
        then reconsider D = x as Ordinal;
A24:    f1.D = D*^A by A8,A23;
        thus fi.x = exp(exp(C,A),D) by A7,A23
          .= exp(C,D*^A) by A6,A23
          .= f2.(f1.D) by A9,A11,A23,A24,ORDINAL2:40
          .= (f2*f1).x by A8,A23,FUNCT_1:13;
      end;
      then fi = f2*f1 by A7,A20,FUNCT_1:2;
      then exp(C,B*^A) is_limes_of fi by A8,A11,A12,A16,Th14,Th19;
      then exp(C,B*^A) = lim fi by ORDINAL2:def 10;
      hence thesis by A4,A5,A7,ORDINAL2:45;
    end;
A25: B*^{} = {} by ORDINAL2:38;
    exp(C,{}) = 1 by ORDINAL2:43;
    hence thesis by A25,A10,ORDINAL2:46;
  end;
  exp(exp(C,A),{}) = 1 by ORDINAL2:43;
  then
A26: P[0] by A1,ORDINAL2:35;
  for B holds P[B] from ORDINAL2:sch 1(A26,A2,A3);
  hence thesis;
end;
