reserve V for Z_Module;
reserve W, W1, W2 for Submodule of V;

theorem ThEQRZMV4:
  for V be Z_Module,
  I being Subset of V,
  l being Linear_Combination of I,
  IQ being Subset of Z_MQ_VectSp(V)
  st V is Mult-cancelable & IQ =(MorphsZQ(V)).:I holds
  ex lq be Linear_Combination of IQ
  st l = lq*(MorphsZQ(V)) &
  Carrier(lq) = (MorphsZQ(V)).:(Carrier(l))
  proof
    let V be Z_Module,
    I be Subset of V,
    l be Linear_Combination of I,
    IQ be Subset of Z_MQ_VectSp(V);
    assume
    AS0: V is Mult-cancelable & IQ =(MorphsZQ(V)).:I;
    reconsider I0 = Carrier(l) as finite Subset of V;
    K2: (MorphsZQ(V)).:I0 c= IQ & (MorphsZQ(V)).:I0 is finite
    by AS0,RELAT_1:123,VECTSP_6:def 4;
    reconsider IQ0 = (MorphsZQ(V)).:I0 as finite Subset of Z_MQ_VectSp(V);
    defpred P[object, object] means
    ($1 in IQ0 & ex v be Element of V
    st v in I0 & $1=(MorphsZQ(V)).v & $2 = l.v)
    or (not $1 in IQ0 & $2 = 0.F_Rat);
    A2: for x being object st x in the carrier of Z_MQ_VectSp(V)
    ex y being object st y in RAT & P[x, y]
    proof
      let x be object;
      assume x in the carrier of Z_MQ_VectSp(V);
      then reconsider x as Element of Z_MQ_VectSp(V);
      per cases;
      suppose
        A3: x in IQ0;
        then consider v be object such that
        A4: v in the carrier of V & v in I0 & x=(MorphsZQ(V)).v
        by FUNCT_2:64;
        reconsider v as Element of V by A4;
        l.v in RAT by NUMBERS:14,TARSKI:def 3;
        hence thesis by A3,A4;
      end;
      suppose not x in IQ0;
        hence thesis;
      end;
    end;
    consider lq being Function of the carrier of Z_MQ_VectSp(V), RAT such that
    A5: for x being object st x in the carrier of Z_MQ_VectSp(V)
    holds P[x, lq.x] from FUNCT_2:sch 1(A2);
    A6: for x being Element of Z_MQ_VectSp(V) st not x in IQ0
    holds lq.x = 0.F_Rat by A5;
    lq is Element of Funcs(the carrier of Z_MQ_VectSp(V), RAT) by FUNCT_2:8;
    then reconsider lq as Linear_Combination of Z_MQ_VectSp(V)
    by A6,VECTSP_6:def 1;
    A11: Carrier(lq) c= IQ0
    proof
      let x be object;
      assume that
      A7: x in Carrier(lq) and
      A8: not x in IQ0;
      consider z being Element of Z_MQ_VectSp(V) such that
      A9: x = z and
      A10: lq.z <> 0.F_Rat by A7;
      thus contradiction by A5,A8,A9,A10;
    end;
    then
    reconsider lq as Linear_Combination of IQ by K2,VECTSP_6:def 4,XBOOLE_1:1;
    A12: dom l = the carrier of V by FUNCT_2:def 1;
    A13: dom (lq*(MorphsZQ(V))) = the carrier of V by FUNCT_2:def 1;
    take lq;
    F1: MorphsZQ(V) is one-to-one by defMorph,AS0;
    for x be object st x in dom l holds l.x = (lq*(MorphsZQ(V))).x
    proof
      let x be object;
      assume x in dom l;
      then reconsider v=x as Element of V;
      reconsider w = (MorphsZQ(V)).v as Element of Z_MQ_VectSp(V);
      per cases;
      suppose v in I0;
        then w in IQ0 by FUNCT_2:35;
        then consider v0 be Element of V such that
        A16: v0 in I0 & w=(MorphsZQ(V)).v0 & lq.w = l.v0 by A5;
        v0 = v by A16,FUNCT_2:19,F1;
        hence l.x = (lq*(MorphsZQ(V))).x by A13,A16,FUNCT_1:12;
      end;
      suppose
        A18: not v in I0;
        then
        A19: l.v = 0.F_Rat;
        not w in IQ0
        proof
          assume w in IQ0;
          then consider v0 be Element of V such that
          A16: v0 in I0 & w=(MorphsZQ(V)).v0 & lq.w = l.v0 by A5;
          thus contradiction by A16,A18,F1,FUNCT_2:19;
        end; then
        lq.w = 0.F_Rat by A5;
        hence l.x = (lq*(MorphsZQ(V))).x by A13,A19,FUNCT_1:12;
      end;
    end;
    hence U1: l = lq*(MorphsZQ(V)) by FUNCT_1:2,A12,A13;
    IQ0 c= Carrier lq
    proof
      let x be object;
      assume x in IQ0;
      then consider v be object such that
  A4: v in the carrier of V & v in I0 & x=(MorphsZQ(V)).v by FUNCT_2:64;
      reconsider v as Element of V by A4;
      x=(MorphsZQ(V)).v by A4;
      then reconsider y = x as Element of Z_MQ_VectSp(V);
      X1: lq.y = l.v by A4,A13,U1,FUNCT_1:12;
      l.v <> 0 by ZMODUL02:8,A4;
      hence x in Carrier(lq) by X1;
    end;
    hence Carrier(lq) = (MorphsZQ(V)).:(Carrier(l)) by A11;
  end;
