
theorem ThSPEM1:
  for L being Z_Lattice holds
  (for x being Vector of EMbedding(L)
  st for y being Vector of EMbedding(L) holds (ScProductEM(L)).(x, y) = 0
  holds x = 0.(EMbedding(L))) &
  (for x, y being Vector of EMbedding(L)
  holds (ScProductEM(L)).(x, y) = (ScProductEM(L)).(y, x)) &
  (for x, y, z being Vector of EMbedding(L), a being Element of INT.Ring
  holds (ScProductEM(L)).(x+y, z) =
  (ScProductEM(L)).(x, z) + (ScProductEM(L)).(y, z)
  & (ScProductEM(L)).(a*x, y) = a * (ScProductEM(L)).(x, y))
  proof
    let L be Z_Lattice;
    set Z = EMbedding(L);
    set f = ScProductEM(L);
    set T = MorphsZQ(L);
    thus for x being Vector of Z
    st for y being Vector of Z holds f.(x, y) = 0
    holds x = 0.(EMbedding(L))
    proof
      let x be Vector of Z such that
      B1: for y being Vector of Z holds f.(x, y) = 0;
      consider xx be Vector of L such that
      B2: T.xx = x by ZMODUL08:22;
      for yy being Vector of L holds <; xx, yy ;> = 0
      proof
        let yy be Vector of L;
        T.yy in rng T by FUNCT_2:4;
        then reconsider y = T.yy as Vector of Z by ZMODUL08:def 3;
        f.(x, y) = 0 by B1;
        hence thesis by B2,defScProductEM;
      end;
      hence x = T.(0.L) by B2,ZMODLAT1:def 3
      .= Class(EQRZM(L), [0.L, 1]) by ZMODUL04:def 6
      .= zeroCoset(L) by ZMODUL04:def 3
      .= 0.(EMbedding(L)) by ZMODUL08:def 3;
    end;
    thus for x, y being Vector of Z holds f.(x, y) = f.(y, x)
    proof
      let x, y be Vector of Z;
      consider xx be Vector of L such that
      B1: T.xx = x by ZMODUL08:22;
      consider yy be Vector of L such that
      B2: T.yy = y by ZMODUL08:22;
      thus f.(x, y) = <; xx, yy ;> by B1,B2,defScProductEM
      .= <; yy, xx ;> by ZMODLAT1:def 3
      .= f.(y, x) by B1,B2,defScProductEM;
    end;
    thus for x, y, z being Vector of Z, a being Element of INT.Ring holds
    f.(x+y, z) = f.(x, z) + f.(y, z) &
    f.(a*x,y) = a * f.(x, y)
    proof
      let x, y, z be Vector of Z, a be Element of INT.Ring;
      consider xx be Vector of L such that
      B1: T.xx = x by ZMODUL08:22;
      consider yy be Vector of L such that
      B2: T.yy = y by ZMODUL08:22;
      consider zz be Vector of L such that
      B3: T.zz = z by ZMODUL08:22;
      B4: T.(xx + yy) = T.xx + T.yy by ZMODUL04:def 6
      .= x + y by B1,B2,ZMODUL08:19;
      reconsider aq = a as Element of F_Rat by NUMBERS:14;
      B5: T.(a*xx) = aq * T.xx by ZMODUL04:def 6
      .= a * x by B1,ZMODUL08:19;
      thus f.(x+y, z) = <; xx+yy, zz ;> by B3,B4,defScProductEM
      .= <; xx, zz ;> + <; yy, zz ;> by ZMODLAT1:def 3
      .= f.(x, z) + <; yy, zz ;> by B1,B3,defScProductEM
      .= f.(x, z) + f.(y, z) by B2,B3,defScProductEM;
      thus f.(a*x, y) = <; a*xx, yy ;> by B2,B5,defScProductEM
      .= a * <; xx, yy ;> by ZMODLAT1:def 3
      .= a * f.(x, y) by B1,B2,defScProductEM;
    end;
  end;
