reserve a,b,c,h for Integer;
reserve k,m,n for Nat;
reserve i,j,z for Integer;
reserve p for Prime;

theorem Th45:
  h <> 0 implies <*2,3*> ^ Sgm PrimeDivisors>3(h) is Chinese_Remainder
  proof
    set X = PrimeDivisors>3(h);
    set F = Sgm X;
    set m = <*2,3*>^F;
    assume
A1: h <> 0;
    then
A2: rng m c= SetPrimes by Th44;
A3: for i st i in dom m holds m.i is prime
    proof
      let i;
      assume i in dom m;
      then m.i in rng m by FUNCT_1:def 3;
      hence m.i is prime by A2,NEWTON:def 6;
    end;
A4: len <*2,3*> = 2 by FINSEQ_1:44;
A5: m.1 = 2 by Th21;
A6: m.2 = 3 by Th21;
    let i,j be Nat;
    assume
A7: i in dom m;
    then
A8: m.i is prime by A3;
    assume
A9: j in dom m;
    then
A10: m.j is prime by A3;
A11: 1 <= j by A9,FINSEQ_3:25;
A12: len m = len <*2,3*> + len F by FINSEQ_1:22;
    assume
A13: i <> j;
A14: now
       assume
A15:   j > 2;
       then reconsider j2 = j-2 as Element of NAT by INT_1:5;
       j2 > 2-2 by A15,XREAL_1:8;
       hence
A16:   j-2 >= 0+1 by NAT_1:13;
       j <= len m by A9,FINSEQ_3:25;
       then
A17:   j2 <= 2 + len F - 2 by A4,A12,XREAL_1:7;
       hence j-2 <= len F;
       thus
A18:   j-2 in dom F by A16,A17,FINSEQ_3:25;
       hence F.(j-2) > 3 by A1,Th40;
       thus m.j = m.(2+j2)
       .= F.(j-2) by A18,Th23;
       thus F.(j-2) is prime by A1,A18,Th42;
     end;
     1 <= i by A7,FINSEQ_3:25;
     then per cases by Lm10;
     suppose
A19:   i = 1;
       per cases by A11,Lm10;
       suppose j = 1;
         hence m.i,m.j are_coprime by A13,A19;
       end;
       suppose j = 2;
         hence m.i,m.j are_coprime by A5,A6,A8,A10,A19,INT_2:30;
       end;
       suppose
A20:     j > 2;
         then 2,F.(j-2) are_coprime or 2 = F.(j-2) by A14,INT_2:30,XPRIMES1:2;
         hence m.i,m.j are_coprime by A14,A19,A20,Th21;
       end;
     end;
     suppose
A21:   i = 2;
       per cases by A11,Lm10;
       suppose j = 1;
         hence m.i,m.j are_coprime by A5,A6,A21,INT_2:30,XPRIMES1:2,3;
       end;
       suppose j = 2;
         hence m.i,m.j are_coprime by A13,A21;
       end;
       suppose j > 2;
         hence m.i,m.j are_coprime by A6,A14,A21,INT_2:30,XPRIMES1:3;
       end;
     end;
     suppose
A22:   i > 2;
       then reconsider i2 = i-2 as Element of NAT by INT_1:5;
       i2 > 2-2 by A22,XREAL_1:8;
       then
A23:   i2 >= 0+1 by NAT_1:13;
       i <= len m by A7,FINSEQ_3:25;
       then
A24:   i2 <= 2 + len F - 2 by A4,A12,XREAL_1:7;
       then
A25:   i-2 in dom F by A23,FINSEQ_3:25;
       then
A26:   F.(i-2) > 3 by A1,Th40;
A27:   m.i = m.(2+i2)
       .= F.(i-2) by A25,Th23;
A28:   F.(i-2) is prime by A1,A25,Th42;
       per cases by A11,Lm10;
       suppose
A29:     j = 1;
         2,F.(i-2) are_coprime or 2 = F.(i-2) by A28,INT_2:30,XPRIMES1:2;
         hence m.i,m.j are_coprime by A1,A25,A27,A29,Th40,Th21;
       end;
       suppose j = 2;
         hence m.i,m.j are_coprime by A6,A26,A27,A28,INT_2:30,XPRIMES1:3;
       end;
       suppose
A30:     j > 2;
         then reconsider j2 = j-2 as Element of NAT by A14;
         per cases by A13,XXREAL_0:1;
         suppose i < j;
           then i2 < j2 by XREAL_1:8;
           then F.i2 < F.j2 by A1,A14,A23,A30,FINSEQ_1:def 14;
           hence m.i,m.j are_coprime by A8,A14,A27,A30,INT_2:30;
         end;
         suppose i > j;
           then i2 > j2 by XREAL_1:8;
           then F.i2 > F.j2 by A1,A14,A24,A30,FINSEQ_1:def 14;
           hence m.i,m.j are_coprime by A8,A14,A27,A30,INT_2:30;
         end;
       end;
     end;
   end;
