reserve k,m,n,p for Nat;

theorem Th2:
  for k, m, n being Nat st k gcd m = 1 holds k gcd m * n = k gcd n
proof
  defpred P[Nat] means for m, n holds $1 gcd m = 1 implies $1 gcd m * n = $1
  gcd n;
A1: for k being Nat holds (for a being Nat st a < k holds P[a]) implies P[k]
  proof
    let k be Nat;
    assume
A2: for a being Nat st a < k holds P[a];
    per cases by NAT_1:25;
    suppose
A3:   k = 0;
      let m, n;
      assume k gcd m = 1;
      then 1 = m by A3,NEWTON:52;
      hence thesis;
    end;
    suppose
A4:   k = 1;
      let m, n;
      assume k gcd m = 1;
      k gcd m * n = 1 by A4,NEWTON:51;
      hence thesis by A4,NEWTON:51;
    end;
    suppose
A5:   k > 1;
      let m, n;
      set b = k gcd m * n;
      assume
A6:   k gcd m = 1;
      thus thesis
      proof
        per cases by NAT_1:25;
        suppose
          b = 0;
          then 0 divides k by NAT_D:def 5;
          then k = 0 by INT_2:3;
          hence thesis by A5;
        end;
        suppose
A7:       b = 1;
          set c = k gcd n;
A8:       c divides k by NAT_D:def 5;
A9:       n divides m * n by NAT_D:def 3;
          c divides n by NAT_D:def 5;
          then c divides m * n by A9,NAT_D:4;
          then c divides 1 by A7,A8,NAT_D:def 5;
          hence thesis by A7,WSIERP_1:15;
        end;
        suppose
          b > 1;
          then b >= 1 + 1 by NAT_1:13;
          then consider p being Element of NAT such that
A10:      p is prime and
A11:      p divides b by INT_2:31;
          b divides k by NAT_D:def 5;
          then
A12:      p divides k by A11,NAT_D:4;
          then consider s being Nat such that
A13:      k = p * s by NAT_D:def 3;
A14:      not p divides m
          proof
            assume p divides m;
            then p divides 1 by A6,A12,NAT_D:def 5;
            then p = 1 by WSIERP_1:15;
            hence thesis by A10,INT_2:def 4;
          end;
          b divides m * n by NAT_D:def 5;
          then p divides m * n by A11,NAT_D:4;
          then p divides n by A10,A14,NEWTON:80;
          then consider r being Nat such that
A15:      n = p * r by NAT_D:def 3;
          reconsider s as Element of NAT by ORDINAL1:def 12;
A16:      s + 1 > s by XREAL_1:29;
          p > 1 by A10,INT_2:def 4;
          then p >= 1 + 1 by NAT_1:13;
          then
A17:      s * p >= s * (1 + 1) by NAT_1:4;
          s <> 0 by A5,A13;
          then s + s > s by XREAL_1:29;
          then s + s >= s + 1 by NAT_1:13;
          then k >= s + 1 by A13,A17,XXREAL_0:2;
          then
A18:      s < k by A16,XXREAL_0:2;
A19:      s gcd m = 1
          proof
            set c = s gcd m;
A20:        c divides s by NAT_D:def 5;
A21:        c divides m by NAT_D:def 5;
            s divides k by A13,NAT_D:def 3;
            then c divides k by A20,NAT_D:4;
            then c divides 1 by A6,A21,NAT_D:def 5;
            hence thesis by WSIERP_1:15;
          end;
          reconsider r as Element of NAT by ORDINAL1:def 12;
A22:      k gcd n = p * (s gcd r) by A13,A15,PYTHTRIP:8;
          k gcd m * n = p * s gcd p * (m * r) by A13,A15
            .= p * (s gcd m * r) by PYTHTRIP:8;
          hence thesis by A2,A18,A19,A22;
        end;
      end;
    end;
  end;
  for k being Nat holds P[k] from NAT_1:sch 4(A1);
  hence thesis;
end;
