reserve a,b,c,d,x,j,k,l,m,n,o,xi,xj for Nat,
  p,q,t,z,u,v for Integer,
  a1,b1,c1,d1 for Complex;

theorem
  for a,b be non zero Nat holds a gcd b = 1 iff
    (for c be non trivial Nat holds (c|-count a)*(c|-count b) = 0)
proof
  let a,b be non zero Nat;
  thus a gcd b = 1 implies
    (for c be non trivial Nat holds (c|-count a)*(c|-count b) = 0)
  proof
    assume a gcd b = 1; then
    B1: a,b are_coprime;
    for c be non trivial Nat holds (c|-count a)*(c|-count b) = 0
    proof
      let c be non trivial Nat;
      C1: c <> 1 by Def0;
      per cases;
      suppose
        not c divides a; then
        c|-count a = 0 by C1,NAT_3:27;
        hence thesis;
      end;
      suppose
        c divides a; then
        not c divides b by C1,B1,PYTHTRIP:def 1; then
        c |-count b = 0 by C1,NAT_3:27;
        hence thesis;
      end;
    end;
    hence thesis;
  end;
  (for c be prime Nat holds (c|-count a)*(c|-count b) = 0) implies a gcd b = 1
  proof
    assume
    B1: for c be prime Nat holds (c|-count a)*(c|-count b) = 0;
    for c be prime Nat holds (not c divides a) or (not c divides b)
    proof
      let c be prime Nat;
      C1: c <> 1 by INT_2:def 4;
      (c|-count a)*(c|-count b) = 0 by B1; then
      ((c|-count a) = 0 or (c|-count b) = 0);
      hence thesis by C1,NAT_3:27;
    end; then
    a,b are_coprime by PYTHTRIP:def 2;
    hence thesis;
  end;
  hence thesis;
end;
