
theorem XFX:
  for D be set, f,g be XFinSequence of D holds f^g = f^(XFS2FS g)
  proof
    let D be set, f,g be XFinSequence of D;
    A1: len (f^g) = len f + len g by AFINSQ_1:17
    .= len f + len (XFS2FS g) by AFINSQ_1:def 9
    .= len (f^(XFS2FS g)) by XL1;
    for k be Nat st k in dom (f^g) holds (f^g).k = (f^(XFS2FS g)).k
    proof
      let k be Nat;
      assume k in dom (f^g); then
      per cases by AFINSQ_1:20;
      suppose
        k in dom f; then
        (f^g).k = f.k & (f^(XFS2FS g)).k = f.k by Def1,AFINSQ_1:def 3;
        hence thesis;
      end;
      suppose
        ex n be Nat st n in dom g & k = len f + n; then
        consider
        n be Nat such that
        C1: n in dom g & k = len f + n;
        n in Segm len g by C1; then
        n < len g by NAT_1:44; then
        C2: 0+1 <= n+1 <= len g by NAT_1:13; then
        n+1 in Seg len g; then
        n+1 in Seg len XFS2FS g by AFINSQ_1:def 9; then
        C3: n+1 in dom XFS2FS g by FINSEQ_1:def 3;
        (f^g).(len f + n) = g.((n+1)-1) by C1,AFINSQ_1:def 3
        .= (XFS2FS g).(n+1) by C2,AFINSQ_1:def 9
        .= (f^(XFS2FS g)).(len f + (n+1) -1) by C3,Def1;
        hence thesis by C1;
      end;
    end;
    hence thesis by A1;
  end;
