reserve a,b,d,n,k,i,j,x,s for Nat;

theorem Th31:
  rng prime_exponents Product primesFinS n c= {0,1} &
    card support (prime_exponents Product primesFinS n) = n
proof
  defpred P[Nat] means
  card support (prime_exponents Product primesFinS ($1)) = $1 &
    rng prime_exponents Product primesFinS ($1) c= {0,1};
A1: Product primesFinS 0 = 1 by RVSUM_1:94;
  then pfexp Product primesFinS 0 = EmptyBag SetPrimes by NAT_3:39;
  then pfexp Product primesFinS 0 =SetPrimes-->{} by PBOOLE:def 3;
  then
A2: rng pfexp Product primesFinS 0 = {0} c= {0,1} by FUNCOP_1:8,ZFMISC_1:7;
  support pfexp (Product primesFinS 0) ={} by A1;
  then card support (pfexp Product primesFinS 0) =0;
  then
A3: P[0] by A2;
A4: for n holds P[n] implies P[n+1]
  proof
    let n;
    set pn = primenumber n,Pn=Product primesFinS n,
      Pn1 = Product primesFinS (n+1);
    assume
A5:   P[n];
A6:   Pn1 = Pn *pn by Th25;
A7:   support pfexp pn \/ support pfexp Pn = support pfexp Pn1 by A6,NAT_3:46;
    n in NAT by ORDINAL1:def 12;
    then primeindex pn = n by NUMBER10:def 4;
    then
A8:   pn,Pn are_coprime by Th30;
    then support pfexp pn misses support pfexp Pn by NAT_3:44;
    then
A9:   card support pfexp Pn1 =
    (card support pfexp pn) + card  support pfexp Pn by A7,CARD_2:40;
    card support (pfexp pn) = 1 by Th22;
    hence card support pfexp Pn1 = n+1 by A9,A5;
A10:  rng pfexp (Pn*pn) = rng pfexp Pn \/ rng pfexp pn by A8,Th24;
A11:  rng pfexp pn c= {0,1} by Th22;
    rng pfexp Pn c= {0,1} by A5;
    then rng pfexp (Pn1) c= {0,1} by A6,A10,A11,XBOOLE_1:8;
    hence thesis;
  end;
  for n holds P[n] from NAT_1:sch 2(A3,A4);
  hence thesis;
end;
