reserve x,y,z for Real,
  a,b,c,d,e,f,g,h for Nat,
  k,l,m,n,m1,n1,m2,n2 for Integer,
  q for Rational;
reserve fs,fs1,fs2,fs3 for FinSequence;
reserve D for non empty set,
  v,v1,v2,v3 for object,
  fp for FinSequence of NAT,
  fr,fr1,fr2 for FinSequence of INT,
  ft for FinSequence of REAL;

theorem
  a in dom fp implies Product(fp)/fp.a is Element of NAT
proof
  assume a in dom fp;
  then consider fs1,fs2 such that
A1: fp=fs1^<*fp.a*>^fs2 and
  len fs1=a-1 and
  len fs2=len fp -a by Lm10;
  per cases;
  suppose
A2: fp.a<>0;
    reconsider fs2 as FinSequence of NAT by A1,FINSEQ_1:36;
    fs1^<*fp.a*> is FinSequence of NAT by A1,FINSEQ_1:36;
    then reconsider fs1 as FinSequence of NAT by FINSEQ_1:36;
    Product(fp)=Product(fs1^<*fp.a*>)*Product(fs2) by A1,RVSUM_1:97
      .=(fp.a)*Product(fs1)*Product(fs2) by RVSUM_1:96
      .=(fp.a)*(Product(fs1)*Product(fs2));
    hence thesis by A2,XCMPLX_1:89;
  end;
  suppose
A3: fp.a=0;
    Product(fp)/fp.a = Product(fp)*(fp.a)" by XCMPLX_0:def 9
      .= Product(fp)*(0 qua Nat) by A3
      .= 0;
    hence thesis;
  end;
end;
