
theorem ThDivisibleX2:
  for V being torsion-free Z_Module holds
  (for x, y being Vector of DivisibleMod(V),
  v, u being Vector of Z_MQ_VectSp(V) st x = v & y = u
  holds x + y = v + u) &
  (for z being Vector of DivisibleMod(V), w being Vector of Z_MQ_VectSp(V),
  a being Element of INT.Ring, aq being Element of F_Rat
  st z = w & a = aq holds
  a * z = aq * w) &
  (for z being Vector of DivisibleMod(V),
  w being Vector of Z_MQ_VectSp(V), aq being Element of F_Rat,
  a being Element of INT.Ring st a <> 0 & aq = a & a * z = aq * w
    holds z = w) &
  (for x being Vector of DivisibleMod(V), v being Vector of Z_MQ_VectSp(V),
  r being Element of F_Rat, m, n being Element of INT.Ring,
  mi,ni be Integer
  st m=mi & n=ni & x = v & r <> 0.F_Rat & n <> 0 & r = mi / ni holds
  ex y being Vector of DivisibleMod(V) st x = n * y & r * v = m * y)
  proof
    let V be torsion-free Z_Module;
    A1: Z_MQ_VectSp(V) = ModuleStr(# Class EQRZM(V), addCoset(V),
    zeroCoset(V), lmultCoset(V) #) by ZMODUL04:def 5;
    thus for x, y being Vector of DivisibleMod(V),
    v, u being Vector of Z_MQ_VectSp(V) st x = v & y = u
    holds x + y = v + u by A1,defDivisibleMod;
    thus A2: for z being Vector of DivisibleMod(V),
    w being Vector of Z_MQ_VectSp(V), a being Element of INT.Ring,
    aq being Element of F_Rat st z = w & a = aq holds
    a * z = aq * w
    proof
      let z be Vector of DivisibleMod(V), w be Vector of Z_MQ_VectSp(V),
      a be Element of INT.Ring, aq be Element of F_Rat such that
      B1: z = w & a = aq;
      thus a * z = ((lmultCoset(V)) | [:INT, Class EQRZM(V):]).(a, z)
      by defDivisibleMod
      .= aq * w by A1,B1,FUNCT_1:49,ZFMISC_1:87;
    end;
    thus A3: for z being Vector of DivisibleMod(V),
    w being Vector of Z_MQ_VectSp(V), aq being Element of F_Rat,
    a being Element of INT.Ring
    st a <> 0 & aq = a & a * z = aq * w holds
    z = w
    proof
      let z be Vector of DivisibleMod(V), w be Vector of Z_MQ_VectSp(V),
      aq be Element of F_Rat, a be Element of INT.Ring such that
      B1: a <> 0 & aq = a & a * z = aq * w;
      assume B2: z <> w;
      reconsider ww = w as Vector of DivisibleMod(V) by ThDivisibleX1;
      B4: a * ww = a * z by A2,B1;
      a * (z - ww) = a*z - a*ww by ZMODUL01:8
      .= 0.(DivisibleMod(V)) by B4,RLVECT_1:15;
      then z - ww is torsion by B1;
      hence contradiction by B2,RLVECT_1:21,ZMODUL06:def 3;
    end;
    thus for x being Vector of DivisibleMod(V),
    v being Vector of Z_MQ_VectSp(V),
    r being Element of F_Rat, m, n being Element of INT.Ring,
    mi,ni be Integer
    st m=mi & n=ni & x = v & r <> 0.F_Rat & n <> 0 & r = mi / ni holds
    ex y being Vector of DivisibleMod(V) st x = n * y & r * v = m * y
    proof
      let x be Vector of DivisibleMod(V), v be Vector of Z_MQ_VectSp(V),
      r be Element of F_Rat, m, n be Element of INT.Ring,
      mi,ni be Integer such that
      B1: m=mi & n=ni & x = v & r <> 0.F_Rat & n <> 0 & r = mi / ni;
      consider y be Vector of DivisibleMod(V) such that
      B2: n * y  = x by B1,ThDivisible1;
      take y;
      reconsider mq = m, nq = n as Element of F_Rat by NUMBERS:14;
      B3: nq * r = mq by B1,XCMPLX_1:87;
      B4: n * (m * y) = (n * m) * y by VECTSP_1:def 16
      .= m * x by B2,VECTSP_1:def 16;
      nq * (r * v) = mq * v by B3,VECTSP_1:def 16;
      then n * (m * y) = nq * (r * v) by A2,B1,B4;
      hence thesis by A3,B1,B2;
    end;
  end;
