reserve i,j,n,k,m for Nat,
     a,b,x,y,z for object,
     F,G for FinSequence-yielding FinSequence,
     f,g,p,q for FinSequence,
     X,Y for set,
     D for non empty set;

theorem
  card doms (F^<*f*>) = (card doms F) * len f
proof
  defpred D[Nat] means
    for f be FinSequence st len f=$1 holds
      card doms (F^<*f*>) = (card doms F) * len f;
A1: D[0]
  proof
    let f be FinSequence such that
A2:   len f=0;
    1<= len F+1 & len (F^<* f *>)=len F+1 by FINSEQ_2:16,NAT_1:11;
    then 1+len F in dom (F^<*f*>) & (F^<*f*>).(1+len F)=f by FINSEQ_3:25;
    then not (F^<*f*>) is non-empty by A2;
    then doms (F^<* f *>) ={} by Th45;
    hence thesis by A2;
  end;
A3: D[n] implies D[n+1]
  proof
    assume
A4:   D[n];
    let f be FinSequence such that
A5:   len f=n+1;
    set n1=n+1,fn=f|n;
    set S = {f^<*1 + len fn*> where f is Element of doms F:f in doms F};
    n < n1 by NAT_1:13;
    then
A6: len fn=n by A5,FINSEQ_1:59;
    f=fn^<*f.n1*> by A5,FINSEQ_3:55;
    then
A7:   doms (F^<* f *>) = doms (F^<* fn *>) \/ S by Th52;
    defpred P[object,object] means
      for g be FinSequence st g=$1 holds $2 = g^<*1 + len fn*>;
A8:   for x being object st x in doms F
    ex y being object st y in S & P[x,y]
    proof
      let x be object;
      assume
A9:     x in doms F;
      then consider p be FinSequence such that
A10:    p=x & len p = len F &
      for i st i in dom p holds p.i in dom (F.i) by Def8;
      take p^<*1 + len fn*>;
      thus thesis by A10,A9;
    end;
    consider H be Function such that
A11:  dom H=doms F & rng H c= S and
A12:  for x being object st x in doms F holds P[x,H.x]
      from FUNCT_1:sch 6(A8);
A13:  H is one-to-one
    proof
      let x1,x2 be object such that
A14:    x1 in dom H & x2 in dom H & H.x1=H.x2;
      reconsider x1,x2 as FinSequence by A11,A14;
      H.x1 = x1 ^ <*1 + len fn*> & H.x2 = x2 ^ <*1 + len fn*> by A14,A11,A12;
      hence thesis by FINSEQ_2:17,A14;
    end;
    S c= rng H
    proof
      let s be object;
      assume s in S;
      then consider g be Element of doms F such that
A15:    s = g^<*1 + len fn*> & g in doms F;
      H.g=s by A15,A12;
      hence thesis by A15,A11,FUNCT_1:def 3;
    end;
    then rng H=S by A11;
    then
A16:  card doms F = card S by A13,A11,CARD_1:70;
    then reconsider S as finite set;
    doms (F^<* fn *>) misses S
    proof
      assume doms (F^<* fn *>) meets S;
      then consider x be object such that
A17:    x in doms (F^<* fn *>) & x in S by XBOOLE_0:3;
      consider g be Element of doms F such that
A18:    x = g^<*1 + len fn*> & g in doms F by A17;
A19:    len g = len F by A18,Th47;
      consider p be FinSequence such that
A20:    p=x & len p = len (F^<* fn *>) &
      for i st i in dom p holds p.i in dom ((F^<* fn *>).i) by Def8,A17;
      1<= 1+len F & len (F^<* fn *>)=len F+1 by FINSEQ_2:16,NAT_1:11;
      then p.(1+len F) in dom ((F^<* fn *>).(1+len F)) by FINSEQ_3:25,A20;
      then 1 + len fn <=len fn by A20,A18,A19,FINSEQ_3:25;
      hence thesis by NAT_1:13;
    end;
    hence card (doms (F^<* f *>)) = card doms (F^<* fn *>) + card doms F
      by A16, A7,CARD_2:40
      .=(card doms F) *n + card doms F by A6,A4
      .=(card doms F) *len f by A5;
  end;
  D[n] from NAT_1:sch 2(A1,A3);
  hence thesis;
end;
