reserve X,Y,Z,x,y,y1,y2 for set,
  D for non empty set,
  k,n,n1,n2,m2,m1 for Nat,

  L,K,M,N for Cardinal,
  f,g for Function;
reserve r for Real;
reserve p,q for FinSequence,
  k,m,n,n1,n2,n3 for Nat;
reserve f,f1,f2 for Function,
  X1,X2 for set;

theorem Th23:
  not D is finite & n <> 0 implies n-tuples_on D,D are_equipotent
  & card (n-tuples_on D) = card D
proof
  assume that
A1: not D is finite and
A2: n <> 0;
  defpred P[Nat] means $1 <> 0 implies card ($1-tuples_on D) = card D;
A3: for k being Nat holds P[k] implies P[k+1]
  proof
    let k be Nat;
    0-tuples_on D = { <*>D } by FINSEQ_2:94;
    then
A4: 0 in card (0-tuples_on D) & card (0-tuples_on D) c= card D by A1,ORDINAL3:8
;
A5: card ((k+1)-tuples_on D) = card [:(k-tuples_on D),1-tuples_on D:] by Th9
      .= card [:card (k-tuples_on D),card (1-tuples_on D):] by CARD_2:7
      .= card [:card (k-tuples_on D),card D:] by Th8
      .= card (k-tuples_on D) *` card D by CARD_2:def 2;
    assume P[k];
    hence thesis by A1,A5,A4,Th16;
  end;
A6: P[0];
  for k being Nat holds P[k] from NAT_1:sch 2(A6,A3);
  then card (n-tuples_on D) = card D by A2;
  hence thesis by CARD_1:5;
end;
