reserve GF for add-associative right_zeroed right_complementable Abelian
  associative well-unital distributive non empty doubleLoopStr;
reserve M for Abelian add-associative right_zeroed right_complementable
  vector-distributive scalar-distributive scalar-associative scalar-unital
   non empty ModuleStr over GF;
reserve W,W1,W2,W3 for Subspace of M;
reserve u,u1,u2,v,v1,v2 for Element of M;
reserve X,Y for set, x,y,y1,y2 for object;
reserve F for Field;
reserve V for VectSp of F;
reserve W for Subspace of V;
reserve W,W1,W2 for Subspace of V;
reserve W1,W2 for Subspace of M;
reserve W for Subspace of V;
reserve W1,W2 for Subspace of M;
reserve u,u1,u2,v for Element of M;
reserve C1 for Coset of W1;
reserve C2 for Coset of W2;
reserve t1,t2 for Element of [:the carrier of M, the carrier of M:];
reserve W for Subspace of V;
reserve A1,A2,B for Element of Subspaces(M),
  W1,W2 for Subspace of M;

theorem Th57:
  LattStr (# Subspaces(M), SubJoin(M), SubMeet(M) #) is Lattice
proof
  set S = LattStr (# Subspaces(M), SubJoin(M), SubMeet(M) #);
A1: for A,B being Element of S holds A "/\" B = B "/\" A
  proof
    let A,B be Element of S;
    consider W1 being strict Subspace of M such that
A2: W1 = A by Def3;
    consider W2 being strict Subspace of M such that
A3: W2 = B by Def3;
    thus A "/\" B = SubMeet(M).(A,B) by LATTICES:def 2
      .= W1 /\ W2 by A2,A3,Def8
      .= SubMeet(M).(B,A) by A2,A3,Def8
      .= B "/\" A by LATTICES:def 2;
  end;
A4: for A,B being Element of S holds (A "/\" B) "\/" B = B
  proof
    let A,B be Element of S;
    consider W1 being strict Subspace of M such that
A5: W1 = A by Def3;
    consider W2 being strict Subspace of M such that
A6: W2 = B by Def3;
    reconsider AB = W1 /\ W2 as Element of S by Def3;
    thus (A "/\" B) "\/" B = SubJoin(M).(A "/\" B,B) by LATTICES:def 1
      .= SubJoin(M).(SubMeet(M).(A,B),B) by LATTICES:def 2
      .= SubJoin(M).(AB,B) by A5,A6,Def8
      .= (W1 /\ W2) + W2 by A6,Def7
      .= B by A6,Lm10,VECTSP_4:29;
  end;
A7: for A,B,C being Element of S holds A "/\" (B "/\" C) = (A "/\" B) "/\" C
  proof
    let A,B,C be Element of S;
    consider W1 being strict Subspace of M such that
A8: W1 = A by Def3;
    consider W2 being strict Subspace of M such that
A9: W2 = B by Def3;
    consider W3 being strict Subspace of M such that
A10: W3 = C by Def3;
    reconsider AB = W1 /\ W2, BC = W2 /\ W3 as Element of S by Def3;
    thus A "/\" (B "/\" C) = SubMeet(M).(A,B "/\" C) by LATTICES:def 2
      .= SubMeet(M).(A,SubMeet(M).(B,C)) by LATTICES:def 2
      .= SubMeet(M).(A,BC) by A9,A10,Def8
      .= W1 /\ (W2 /\ W3) by A8,Def8
      .= (W1 /\ W2) /\ W3 by Th14
      .= SubMeet(M).(AB,C) by A10,Def8
      .= SubMeet(M).(SubMeet(M).(A,B),C) by A8,A9,Def8
      .= SubMeet(M).(A "/\" B,C) by LATTICES:def 2
      .= (A "/\" B) "/\" C by LATTICES:def 2;
  end;
A11: for A,B,C being Element of S holds A "\/" (B "\/" C) = (A "\/" B) "\/" C
  proof
    let A,B,C be Element of S;
    consider W1 being strict Subspace of M such that
A12: W1 = A by Def3;
    consider W2 being strict Subspace of M such that
A13: W2 = B by Def3;
    consider W3 being strict Subspace of M such that
A14: W3 = C by Def3;
    reconsider AB = W1 + W2, BC = W2 + W3 as Element of S by Def3;
    thus A "\/" (B "\/" C) = SubJoin(M).(A,B "\/" C) by LATTICES:def 1
      .= SubJoin(M).(A,SubJoin(M).(B,C)) by LATTICES:def 1
      .= SubJoin(M).(A,BC) by A13,A14,Def7
      .= W1 + (W2 + W3) by A12,Def7
      .= (W1 + W2) + W3 by Th6
      .= SubJoin(M).(AB,C) by A14,Def7
      .= SubJoin(M).(SubJoin(M).(A,B),C) by A12,A13,Def7
      .= SubJoin(M).(A "\/" B,C) by LATTICES:def 1
      .= (A "\/" B) "\/" C by LATTICES:def 1;
  end;
A15: for A,B being Element of S holds A "/\" (A "\/" B) = A
  proof
    let A,B be Element of S;
    consider W1 being strict Subspace of M such that
A16: W1 = A by Def3;
    consider W2 being strict Subspace of M such that
A17: W2 = B by Def3;
    reconsider AB = W1 + W2 as Element of S by Def3;
    thus A "/\" (A "\/" B) = SubMeet(M).(A,A "\/" B) by LATTICES:def 2
      .= SubMeet(M).(A,SubJoin(M).(A,B)) by LATTICES:def 1
      .= SubMeet(M).(A,AB) by A16,A17,Def7
      .= W1 /\ (W1 + W2) by A16,Def8
      .= A by A16,Lm11,VECTSP_4:29;
  end;
  for A,B being Element of S holds A "\/" B = B "\/" A
  proof
    let A,B be Element of S;
    consider W1 being strict Subspace of M such that
A18: W1 = A by Def3;
    consider W2 being strict Subspace of M such that
A19: W2 = B by Def3;
    thus A "\/" B = SubJoin(M).(A,B) by LATTICES:def 1
      .= W1 + W2 by A18,A19,Def7
      .= W2 + W1 by Lm1
      .= SubJoin(M).(B,A) by A18,A19,Def7
      .= B "\/" A by LATTICES:def 1;
  end;
  then S is join-commutative join-associative meet-absorbing meet-commutative
  meet-associative join-absorbing by A11,A4,A1,A7,A15,LATTICES:def 4,def 5
,def 6,def 7,def 8,def 9;
  hence thesis;
end;
