 reserve R for Ring;
 reserve x, y, y1 for set;
 reserve a, b for Element of R;
 reserve V for LeftMod of R;
 reserve v, w for Vector of V;
 reserve u,v,w for Vector of V;
 reserve F,G,H,I for FinSequence of V;
 reserve j,k,n for Nat;
 reserve f,f9,g for sequence of V;
 reserve R for Ring;
 reserve V, X, Y for LeftMod of R;
 reserve u, u1, u2, v, v1, v2 for Vector of V;
 reserve a for Element of R;
 reserve V1, V2, V3 for Subset of V;
 reserve x for set;
 reserve W, W1, W2 for Submodule of V;
 reserve w, w1, w2 for Vector of W;
 reserve D for non empty set;
 reserve d1 for Element of D;
 reserve A for BinOp of D;
 reserve M for Function of [:the carrier of R,D:],D;
reserve B,C for Coset of W;
 reserve V for LeftMod of R;
 reserve W, W1, W2, W3 for Submodule of V;
 reserve u, u1, u2, v, v1, v2 for Vector of V;
 reserve a, a1, a2 for Element of R;
 reserve X, Y, y, y1, y2 for set;
 reserve C for Coset of W;
 reserve C1 for Coset of W1;
 reserve C2 for Coset of W2;
reserve A1,A2,B for Element of Submodules(V);

theorem
  for V being Z_Module, W1,W2,W3 being strict Submodule of V holds
  W1 is Submodule of W2 implies W1 /\ W3 is Submodule of W2 /\ W3
  proof
    let V be Z_Module, W1,W2,W3 be strict Submodule of V;
    set S = LattStr (# Submodules(V), SubJoin(V), SubMeet(V) #);
    reconsider A = W1, B = W2, C = W3, AC = W1 /\ W3, BC = W2 /\ W3
    as Element of S by VECTSP_5:def 3;
    assume
    A1: W1 is Submodule of W2;
    A "\/" B = W1 + W2 by VECTSP_5:def 7
    .= B by A1,Th98;
    then A [= B;
    then A "/\" C [= B "/\" C by LATTICES:9;
    then
    A2: (A "/\" C) "\/" (B "/\" C) = (B "/\" C);
    A3: B "/\" C = W2 /\ W3 by VECTSP_5:def 8;
    (A "/\" C) "\/" (B "/\" C) = SubJoin(V).(SubMeet(V).(A,C),BC)
      by VECTSP_5:def 8
    .= SubJoin(V).(AC,BC) by VECTSP_5:def 8
    .= (W1 /\ W3) + (W2 /\ W3) by VECTSP_5:def 7;
    hence thesis by A2,A3,Th98;
  end;
