reserve FS for non empty doubleLoopStr;
reserve F for Field;
reserve R for Abelian add-associative right_zeroed right_complementable non
  empty addLoopStr,
  x, y, z for Scalar of R;
reserve SF for Skew-Field,
  x, y, z for Scalar of SF;
reserve R, R1, R2 for Ring;
reserve R for Abelian add-associative right_zeroed right_complementable
  associative well-unital right_unital distributive non empty doubleLoopStr,
  F for non degenerated almost_left_invertible Ring,
  x for Scalar of F,
  V for add-associative right_zeroed right_complementable vector-distributive
  scalar-distributive scalar-associative scalar-unital
   non empty
  ModuleStr over F,
  v for Vector of V;

theorem
  x*v = 0.V iff x = 0.F or v = 0.V
proof
  x*v = 0.V implies x = 0.F or v = 0.V
  proof
    assume x*v = 0.V;
    then
A1: (x"*x)*v = x"*(0.V) by VECTSP_1:def 16
      .= 0.V by VECTSP_1:14;
    assume x<> 0.F;
    then 0.V = (1_F)*v by A1,Th9;
    hence thesis by VECTSP_1:def 17;
  end;
  hence thesis by VECTSP_1:14;
end;
