reserve i,j,k,l for natural Number;
reserve A for set, a,b,x,x1,x2,x3 for object;
reserve D,D9,E for non empty set;
reserve d,d1,d2,d3 for Element of D;
reserve d9,d19,d29,d39 for Element of D9;
reserve p,q,r for FinSequence;
reserve s for Element of D*;

theorem
 for D being set holds i-tuples_on D = Funcs(Seg i,D)
proof let D be set;
  now
    reconsider j=i as Element of NAT by ORDINAL1:def 12;
    let z be object;
    thus z in i-tuples_on D implies z in Funcs(Seg i,D)
    proof
      assume z in i-tuples_on D;
      then consider s being Element of D* such that
A1:   z = s and
A2:   len s = i;
A3:   rng s c= D by FINSEQ_1:def 4;
      dom s = Seg i by A2,FINSEQ_1:def 3;
      hence thesis by A1,A3,FUNCT_2:def 2;
    end;
    assume z in Funcs(Seg i,D);
    then consider p being Function such that
A4: z = p and
A5: dom p = Seg j and
A6: rng p c= D by FUNCT_2:def 2;
    p is FinSequence by A5,FINSEQ_1:def 2;
    then p is FinSequence of D by A6,FINSEQ_1:def 4;
    then reconsider p as Element of D* by FINSEQ_1:def 11;
    len p = i by A5,FINSEQ_1:def 3;
    hence z in i-tuples_on D by A4;
  end;
  hence thesis by TARSKI:2;
end;
