
theorem ThSLX2:
  for L being positive-definite Z_Lattice,
  Z being non empty LatticeStr over INT.Ring st
  Z is Submodule of DivisibleMod(L) &
  the scalar of Z = (ScProductDM(L)) || (the carrier of Z) holds
  Z is Z_Lattice-like
  proof
    let L be positive-definite Z_Lattice,
    Z be non empty LatticeStr over INT.Ring such that
    A1: Z is Submodule of DivisibleMod(L) &
    the scalar of Z = (ScProductDM(L)) || (the carrier of Z);
    set A = the carrier of Z;
    A2: for x, y being Vector of Z holds
    (the scalar of Z).(x, y) = (ScProductDM(L)).(x, y)
    proof
      let x, y be Vector of Z;
      [x, y] in [:A, A:];
      hence (the scalar of Z).(x, y) = (ScProductDM(L)).(x, y)
        by A1,FUNCT_1:49;
    end;
    Z is Z_Lattice-like
    proof
      thus for x being Vector of Z
      st for y being Vector of Z holds <; x, y ;> = 0
      holds x = 0.Z
      proof
        let x be Vector of Z such that
        B1: for y being Vector of Z holds <; x, y ;> = 0;
        B2: x is Vector of DivisibleMod(L) by A1,ZMODUL01:25;
        assume x <> 0.Z;
        then x <> 0.DivisibleMod(L) by A1,ZMODUL01:26;
        then (ScProductDM(L)).(x, x) <> 0 by B2,ThSPDM2;
        then (the scalar of Z).(x, x) <> 0 by A2;
        then <; x, x ;> <> 0;
        hence contradiction by B1;
      end;
      thus for x, y being Vector of Z holds <; x, y ;> = <; y, x ;>
      proof
        let x, y be Vector of Z;
        reconsider xx = x, yy = y as Vector of DivisibleMod(L)
        by A1,ZMODUL01:25;
        thus <; x, y ;> = (the scalar of Z).(x, y)
        .= (ScProductDM(L)).(x, y) by A2
        .= (ScProductDM(L)).(yy, xx) by ThSPDM1
        .= (the scalar of Z).(y, x) by A2
        .= <; y, x ;>;
      end;
      thus for x, y, z being Vector of Z, a being Element of INT.Ring
      holds <; x + y, z ;> = <; x, z ;> + <; y, z ;> &
      <; a*x, y ;> = a * <; x, y ;>
      proof
        let x, y, z be Vector of Z, a be Element of INT.Ring;
        reconsider xx = x, yy = y, zz = z as Vector of DivisibleMod(L)
        by A1,ZMODUL01:25;
        B1: xx + yy = x + y by A1,ZMODUL01:28;
        thus <; x + y, z ;> = (the scalar of Z).(x + y, z)
        .= (ScProductDM(L)).(xx + yy, zz) by A2,B1
        .= (ScProductDM(L)).(xx, zz) + (ScProductDM(L)).(yy, zz) by ThSPDM1
        .= (the scalar of Z).(x, z) + (ScProductDM(L)).(y, z) by A2
        .= (the scalar of Z).(x, z) + (the scalar of Z).(y, z) by A2
        .= <; x, z ;> + <; y, z ;>;
        B2: a * xx = a * x by A1,ZMODUL01:29;
        thus <; a*x, y ;> = (the scalar of Z).(a*x, y)
        .= (ScProductDM(L)).(a*xx, yy) by A2,B2
        .= a * (ScProductDM(L)).(xx, yy) by ThSPDM1
        .= a * (the scalar of Z).(x, y) by A2
        .= a * <; x, y ;>;
      end;
    end;
    hence thesis;
  end;
