
theorem Th7:
  for h,k,s,t be non zero Nat
  st h,k are_coprime & s * t = h * k
  & (for q being Prime st q in support prime_factorization s
  holds not q,h are_coprime)
  & (for q being Prime st q in support prime_factorization t
  holds not q,k are_coprime)
  holds
  s = h & t = k
  proof
    let h,k,s,t be non zero Nat;
    assume A1: h,k are_coprime;
    assume A2: s * t = h * k;
    assume A3: for q being Prime st q in
    support (prime_factorization s) holds not q,h are_coprime;
    assume A4:
    for q being Prime st q in support prime_factorization t
    holds not q,k are_coprime;
    set ps=prime_factorization s;
    set ph=prime_factorization h;
    set pt=prime_factorization t;
    set pk=prime_factorization k;
    A5: support (ps) c= support (ph) by A3,Th6;
    A6: support (pt) c= support (pk) by A4,Th6;
    support pfexp h misses support pfexp k by NAT_3:44,A1; then
    support (ph) misses support pfexp k by NAT_3:def 9; then
    A7:support (ph) misses support (pk) by NAT_3:def 9;
    set f = ps + pt;
    set g = ph + pk;
    A8: f is prime-factorization-like by A7,A5,A6,XBOOLE_1:64,Lm1;
    A9: g is prime-factorization-like by A7,Lm1;
    A10: Product g = (Product ph)*(Product pk) by A7,NAT_3:19
    .= h*(Product pk) by NAT_3:61
    .= h*k by NAT_3:61;
    A11: Product f = (Product ps)*(Product pt)
    by A5,A6,XBOOLE_1:64,A7,NAT_3:19
    .= s*(Product pt) by NAT_3:61
    .= s*t by NAT_3:61;
    (support ps) \/ (support pt) = support (f) by PRE_POLY:38
    .=support (g) by A11,INT_7:15,A8,A9,A10,A2
    .= (support ph) \/ (support pk) by PRE_POLY:38;
    then
    A12: support ps = support ph
    & support pt = support pk by A5,A6,A7,Th1;
    A13: support ps = support pfexp h by A12,NAT_3:def 9;
    A14: support pt = support pfexp k by A12,NAT_3:def 9;
    A15:for p being Nat st p in support pfexp h
    holds ps.p = p |^ (p |-count h)
    proof
      let p be Nat;
      assume A16: p in support pfexp h; then
      A17: p in support ph by NAT_3:def 9;
      A18: p in support (ps) by A16,A12,NAT_3:def 9;
      thus ps.p = f.p by Th3,A18,A5,A6,XBOOLE_1:64,A7
      .=ph.p by Th3,A17,A7,INT_7:15,A8,A9,A10,A2,A11
      .= p |^ (p |-count h) by A16,NAT_3:def 9;
    end;
    A19:for p being Nat st p in support pfexp k
    holds pt.p = p |^ (p |-count k)
    proof
      let p be Nat;
      assume A20: p in support pfexp k; then
      A21: p in support pk by NAT_3:def 9;
      A22: p in support (pt) by A12,A20,NAT_3:def 9;
      thus (pt).p = f.p by Th4,A22,A5,A6,XBOOLE_1:64,A7
      .=pk.p by Th4,A21,A7,A11,INT_7:15,A8,A9,A10,A2
      .= p |^ (p |-count k) by A20,NAT_3:def 9;
    end;
    thus s = Product (ps) by NAT_3:61
    .=Product (ph) by A15,A13,NAT_3:def 9
    .= h by NAT_3:61;
    thus t = Product (pt) by NAT_3:61
    .=Product (pk) by A19,A14,NAT_3:def 9
    .= k by NAT_3:61;
  end;
