
theorem
  for a be Nat, b,c be non zero Nat holds
  (a*b) mod c = b implies (a*(b gcd c)) mod c = b gcd c
  proof
    let a be Nat, b,c be non zero Nat;
    assume
    A1: (a*b) mod c = b;
    reconsider a as non zero Nat by A1;
    consider k,l be Integer such that
    A4: b = (b gcd c)*k & c = (b gcd c)*l & k,l are_coprime by INT_2:23;
    k >= 0 by A4; then
    k in NAT by INT_1:3; then
    reconsider k as non zero Nat by A4;
    l >= 0 by A4; then
    l in NAT by INT_1:3; then
    reconsider l as non zero Nat by A4;
    A5: (a*k) mod l = ((b gcd c)*((a*k) mod l))/(b gcd c) by XCMPLX_1:89
    .= ((a*k*(b gcd c)) mod (l*(b gcd c)))/(b gcd c) by INT_4:20
    .= k by A1,A4,XCMPLX_1:89; then
    A6: k mod l = k;
    l > k & k >= 1 by A5,INT_1:58,NAT_1:14; then
    l > 1 by XXREAL_0:2; then
    1 = a mod l by A4,A5,A6,PEPIN:11; then
    (b gcd c)*1 = (a*(b gcd c)) mod c by A4,INT_4:20;
    hence thesis;
  end;
