reserve X,Y for set;
reserve R for domRing-like commutative Ring;
reserve c for Element of R;
reserve R for gcdDomain;

theorem
  for Amp being AmpleSet of R for r1,r2,s1,s2 being Element of R holds
    Amp is multiplicative &
    r1,r2 are_normalized_wrt Amp & s1,s2 are_normalized_wrt Amp implies
      add1(r1,r2,s1,s2,Amp),add2(r1,r2,s1,s2,Amp) are_normalized_wrt Amp
proof
  let Amp be AmpleSet of R;
  let r1,r2,s1,s2 be Element of R;
  assume that
A1: Amp is multiplicative and
A2: r1,r2 are_normalized_wrt Amp and
A3: s1,s2 are_normalized_wrt Amp;
A4: r2 <> 0.R by A2;
  r2 in Amp by A2;
  then
A5: r2 = NF(r2,Amp) by Def9;
  s2 in Amp by A3;
  then
A6: s2 = NF(s2,Amp) by Def9;
A7: gcd(r1,r2,Amp) = 1.R by A2;
  then
A8: r1,r2 are_co-prime;
A9: gcd(s1,s2,Amp) = 1.R by A3;
  then
A10: s1,s2 are_co-prime;
A11: s2 <> 0.R by A3;
  now
    per cases;
    case
A12:  r1 = 0.R;
      then add2(r1,r2,s1,s2,Amp) = s2 by A5,A6,A8,A10,Def17;
      hence thesis by A3,A5,A6,A8,A10,A12,Def16;
    end;
    case
A13:  s1 = 0.R;
      then add2(r1,r2,s1,s2,Amp) = r2 by A5,A6,A8,A10,Def17;
      hence thesis by A2,A5,A6,A8,A10,A13,Def16;
    end;
    case
A14:  gcd(r2,s2,Amp) = 1.R;
      then
A15:  add2(r1,r2,s1,s2,Amp) = r2 * s2 by A5,A6,A8,A10,Def17;
      add1(r1,r2,s1,s2,Amp) = (r1 * s2) + (r2 * s1) by A5,A6,A8,A10,A14,Def16;
      then
A16:  gcd(add1(r1,r2,s1,s2,Amp),add2(r1,r2,s1,s2,Amp),Amp) = gcd(((r1 * (
      s2/1.R)) + (s1 * r2)), (r2 * s2),Amp) by A15,Th10
        .= gcd((r1 * (s2/1.R)) + (s1 * (r2/1.R)), (r2 * s2),Amp) by Th10
        .= gcd((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,Amp))), (r2
      * (s2/gcd(r2,s2,Amp))),Amp) by A14,Th10
        .= gcd((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,Amp))), gcd(
      r2,s2,Amp),Amp) by A4,A7,A9,Th40
        .= 1.R by A14,Th32;
      reconsider r2,s2 as Element of Amp by A2,A3;
      r2 * s2 in Amp & r2 * s2 <> 0.R by A1,A4,A11,VECTSP_2:def 1;
      hence thesis by A15,A16;
    end;
    case
A17:  (r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,Amp))) = 0.R;
A18:  1.R in Amp & 1.R <> 0.R by Th22;
A19:  add2(r1,r2,s1,s2,Amp) = 1.R by A5,A6,A8,A10,A17,Def17;
      then gcd(add1(r1,r2,s1,s2,Amp),add2(r1,r2,s1,s2,Amp),Amp) = 1.R by Th32;
      hence thesis by A19,A18;
    end;
    case
      r1 <> 0.R & s1 <> 0.R & gcd(r2,s2,Amp) <> 1.R & (r1 * (s2/gcd(
      r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,Amp))) <> 0.R;
      then
A20:  add1(r1,r2,s1,s2,Amp) = ((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd
(r2,s2,Amp )))) / gcd(((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,Amp))))
, gcd(r2,s2,Amp),Amp) & add2(r1,r2,s1,s2,Amp) = (r2 * (s2/gcd(r2,s2,Amp))) /
gcd(((r1 * ( s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,Amp)))), gcd(r2,s2,Amp),
      Amp) by A5,A6,A8,A10,Def16,Def17;
      gcd(r2,s2,Amp) <> 0.R by A4,Th33;
      then
A21:  gcd((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,Amp))), gcd(r2
      ,s2,Amp),Amp) <> 0.R by Th33;
      gcd((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,Amp))), (r2 *
(s2/gcd(r2,s2,Amp))),Amp) = gcd((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,
      s2,Amp))), gcd(r2,s2,Amp),Amp) by A4,A7,A9,Th40;
      then
A22:  gcd( ((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,Amp)))) /
gcd((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,Amp))), gcd(r2,s2,Amp),Amp
), ((r2 * (s2/gcd(r2,s2,Amp)))) / gcd((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/
      gcd(r2,s2,Amp))), gcd(r2,s2,Amp),Amp), Amp) = 1.R by A21,Th38;
      reconsider r2,s2 as Element of Amp by A2,A3;
A23:  gcd(r2,s2,Amp) divides s2 by Def12;
      reconsider z2 = gcd(((r1 * (s2/gcd(r2,s2,Amp))) + (s1 * (r2/gcd(r2,s2,
      Amp)))), gcd(r2,s2,Amp),Amp) as Element of Amp by Def12;
A24:  gcd(r2,s2,Amp) <> 0.R by A4,Th33;
      then
A25:  z2 <> 0.R by Th33;
      gcd(r2,s2,Amp) in Amp by Def12;
      then reconsider z3 = s2/gcd(r2,s2,Amp) as Element of Amp by A1,A23,A24
,Th27;
      r2 * z3 in Amp by A1;
      then reconsider z1 = r2 * (s2/gcd(r2,s2,Amp)) as Element of Amp;
A26:  r2 * s2 <> 0.R by A4,A11,VECTSP_2:def 1;
A27:  gcd(r2,s2,Amp) divides r2 * s2 by A23,Th7;
      then z1 = (r2 * s2)/gcd(r2,s2,Amp) by A23,A24,Th11;
      then
A28:  z1 <> 0.R by A24,A26,A27,Th8;
      z2 divides gcd(r2,s2,Amp) & gcd(r2,s2,Amp) divides r2 by Def12;
      then
A29:  z2 divides r2 by Th2;
      then z2 divides z1 by Th7;
      then
A30:  z1 / z2 <> 0.R by A25,A28,Th8;
      z1 / z2 in Amp by A1,A29,A25,Th7,Th27;
      hence thesis by A20,A22,A30;
    end;
  end;
  hence thesis;
end;
