
theorem Th50:
  for n being non zero Element of NAT ex f being FinSequence of (
the carrier of Polynom-Ring F_Complex), p being Polynomial of F_Complex st p =
Product(f) & dom f = Seg n & (for i being non zero Element of NAT st i in Seg
n holds (not i divides n or i = n implies f.i = <%1_F_Complex%>) & (i divides n
  & i <> n implies f.i = cyclotomic_poly(i))) & unital_poly(F_Complex,n) = (
  cyclotomic_poly n)*'p
proof
  set cPRFC = the carrier of Polynom-Ring F_Complex;
  let n be non zero Element of NAT;
  defpred P[set,set] means ex i being non zero Element of NAT st i = $1 & (
  not i divides n implies $2 = <%1_F_Complex%>) & (i divides n implies $2 =
  cyclotomic_poly(i));
  consider m being Nat such that
A1: n = m+1 by NAT_1:6;
A2: for k being Nat st k in Seg n ex x being Element of cPRFC st
  P[k,x]
  proof
    let k be Nat;
    assume k in Seg n;
    then reconsider i = k as non zero Element of NAT by FINSEQ_1:1;
    per cases;
    suppose
A3:   not i divides n;
      reconsider FC1 = <%1_F_Complex%> as Element of cPRFC by POLYNOM3:def 10;
      take FC1;
      take i;
      thus i = k;
      thus thesis by A3;
    end;
    suppose
A4:   i divides n;
      reconsider FC1 = cyclotomic_poly(i) as Element of cPRFC by
POLYNOM3:def 10;
      take FC1;
      take i;
      thus i = k;
      thus thesis by A4;
    end;
  end;
  consider f being FinSequence of cPRFC such that
A5: dom f = Seg n and
A6: for k being Nat st k in Seg n holds P[k,f/.k] from
  RECDEF_1:sch 17(A2);
  reconsider fm = f|Seg m as FinSequence of cPRFC by FINSEQ_1:18;
A7: len f = n by A5,FINSEQ_1:def 3;
A8: now
    let i be non zero Element of NAT;
    assume
A9: i in dom f;
    then
A10: i <= n by A5,FINSEQ_1:1;
    (ex j being non zero Element of NAT st j = i &( not j divides n
implies f/.i = <%1_F_Complex%>)&( j divides n implies f/.i = cyclotomic_poly(j)
    ))& 1 <= i by A5,A6,A9,FINSEQ_1:1;
    hence (not i divides n implies f.i = <%1_F_Complex%>) & (i divides n
    implies f.i = cyclotomic_poly(i)) by A7,A10,FINSEQ_4:15;
  end;
  reconsider FC1 = <%1_F_Complex %> as Element of cPRFC by POLYNOM3:def 10;
  <* FC1 *> is FinSequence of cPRFC;
  then reconsider h = fm^<* <%1_F_Complex %> *> as FinSequence of cPRFC by
FINSEQ_1:75;
  reconsider p = Product(h) as Polynomial of F_Complex by POLYNOM3:def 10;
  take h, p;
  thus p = Product(h);
A11: m <= n by A1,NAT_1:13;
  then
A12: len fm = m by A7,FINSEQ_1:17;
  reconsider cpn = cyclotomic_poly n as Element of cPRFC by POLYNOM3:def 10;
  reconsider fn = f|Seg n as FinSequence of cPRFC by FINSEQ_1:18;
  1 <= n by NAT_1:53;
  then
A13: n in Seg n by FINSEQ_1:1;
  then
A14: f.n = cyclotomic_poly n by A5,A8;
  len <* <%1_F_Complex %> *> = 1 by FINSEQ_1:40;
  hence dom h = Seg n by A1,A12,FINSEQ_1:def 7;
A15: dom fm = Seg m by A7,A11,FINSEQ_1:17;
  thus for i being non zero Element of NAT st i in Seg n holds (not i divides
n or i = n implies h.i = <%1_F_Complex%>) & (i divides n & i <> n implies h.i =
  cyclotomic_poly(i))
  proof
    let i be non zero Element of NAT;
    assume
A16: i in Seg n;
    per cases;
    suppose
A17:  i in Seg m;
      then
A18:  fm.i = f.i & i <= m by FINSEQ_1:1,FUNCT_1:49;
      h.i = fm.i by A15,A17,FINSEQ_1:def 7;
      hence thesis by A5,A1,A8,A16,A18,NAT_1:13;
    end;
    suppose
      not i in Seg m;
      then not (1 <= i & i <= m) by FINSEQ_1:1;
      then
A19:  n <= i by A1,A16,FINSEQ_1:1,NAT_1:13;
A20:  i <= n by A16,FINSEQ_1:1;
      1 in Seg 1 by FINSEQ_1:1;
      then 1 in dom <* <%1_F_Complex %> *> by FINSEQ_1:38;
      then h.n = <* <%1_F_Complex %> *>.1 by A1,A12,FINSEQ_1:def 7
        .= <%1_F_Complex%>;
      hence
      not i divides n or i = n implies h.i = <%1_F_Complex%> by A19,A20,
XXREAL_0:1;
      thus thesis by A19,A20,XXREAL_0:1;
    end;
  end;
  reconsider p1 = <%1_F_Complex %> as Element of cPRFC by POLYNOM3:def 10;
  reconsider Pfm = Product fm as Polynomial of F_Complex by POLYNOM3:def 10;
A21: Product(h) = Product(fm) * p1 by GROUP_4:6
    .= Pfm *' <%1_F_Complex %> by POLYNOM3:def 10
    .= Product(fm) by UPROOTS:32;
  f = fn by A7,FINSEQ_2:20
    .= fm^<*cyclotomic_poly n*> by A5,A1,A13,A14,FINSEQ_5:10;
  then
A22: Product(f) = Product(fm) * cpn by GROUP_4:6;
  unital_poly(F_Complex,n) = Product(f) by A7,A8,Th49;
  hence thesis by A21,A22,POLYNOM3:def 10;
end;
