Article RMOD_3, MML version 4.99.1005

:: RMOD_3:funcnot 1 => RMOD_3:func 1
definition
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over a1;
  let a3, a4 be Submodule of a2;
  func A3 + A4 -> strict Submodule of a2 means
    the carrier of it = {b1 + b2 where b1 is Element of the carrier of a2, b2 is Element of the carrier of a2: b1 in a3 & b2 in a4};
end;

:: RMOD_3:def 1
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
for b5 being strict Submodule of b2 holds
      b5 = b3 + b4
   iff
      the carrier of b5 = {b6 + b7 where b6 is Element of the carrier of b2, b7 is Element of the carrier of b2: b6 in b3 & b7 in b4};

:: RMOD_3:funcnot 2 => RMOD_3:func 2
definition
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over a1;
  let a3, a4 be Submodule of a2;
  func A3 /\ A4 -> strict Submodule of a2 means
    the carrier of it = (the carrier of a3) /\ the carrier of a4;
end;

:: RMOD_3:def 2
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
for b5 being strict Submodule of b2 holds
      b5 = b3 /\ b4
   iff
      the carrier of b5 = (the carrier of b3) /\ the carrier of b4;

:: RMOD_3:th 5
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
for b5 being set holds
      b5 in b3 + b4
   iff
      ex b6, b7 being Element of the carrier of b2 st
         b6 in b3 & b7 in b4 & b5 = b6 + b7;

:: RMOD_3:th 6
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
for b5 being Element of the carrier of b2
      st (b5 in b3 or b5 in b4)
   holds b5 in b3 + b4;

:: RMOD_3:th 7
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
for b5 being set holds
      b5 in b3 /\ b4
   iff
      b5 in b3 & b5 in b4;

:: RMOD_3:th 8
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being strict Submodule of b2 holds
   b3 + b3 = b3;

:: RMOD_3:th 9
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2 holds
b3 + b4 = b4 + b3;

:: RMOD_3:th 10
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2 holds
b3 + (b4 + b5) = (b3 + b4) + b5;

:: RMOD_3:th 11
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2 holds
b3 is Submodule of b3 + b4 & b4 is Submodule of b3 + b4;

:: RMOD_3:th 12
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being Submodule of b2
for b4 being strict Submodule of b2 holds
      b3 is Submodule of b4
   iff
      b3 + b4 = b4;

:: RMOD_3:th 13
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being strict Submodule of b2 holds
   ((0). b2) + b3 = b3 & b3 + (0). b2 = b3;

:: RMOD_3:th 14
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed strict RightMod-like RightModStr over b1 holds
   ((0). b2) + (Omega). b2 = b2 & ((Omega). b2) + (0). b2 = b2;

:: RMOD_3:th 15
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being Submodule of b2 holds
   ((Omega). b2) + b3 = RightModStr(#the carrier of b2,the addF of b2,the ZeroF of b2,the rmult of b2#) &
    b3 + (Omega). b2 = RightModStr(#the carrier of b2,the addF of b2,the ZeroF of b2,the rmult of b2#);

:: RMOD_3:th 16
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed strict RightMod-like RightModStr over b1 holds
   ((Omega). b2) + (Omega). b2 = b2;

:: RMOD_3:th 17
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being strict Submodule of b2 holds
   b3 /\ b3 = b3;

:: RMOD_3:th 18
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2 holds
b3 /\ b4 = b4 /\ b3;

:: RMOD_3:th 19
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2 holds
b3 /\ (b4 /\ b5) = (b3 /\ b4) /\ b5;

:: RMOD_3:th 20
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2 holds
b3 /\ b4 is Submodule of b3 & b3 /\ b4 is Submodule of b4;

:: RMOD_3:th 21
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being Submodule of b2 holds
   (for b4 being strict Submodule of b2
          st b4 is Submodule of b3
       holds b4 /\ b3 = b4) &
    (for b4 being Submodule of b2
          st b4 /\ b3 = b4
       holds b4 is Submodule of b3);

:: RMOD_3:th 22
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2
      st b3 is Submodule of b4
   holds b3 /\ b5 is Submodule of b4 /\ b5;

:: RMOD_3:th 23
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2
      st b3 is Submodule of b4
   holds b3 /\ b5 is Submodule of b4;

:: RMOD_3:th 24
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2
      st b3 is Submodule of b4 & b3 is Submodule of b5
   holds b3 is Submodule of b4 /\ b5;

:: RMOD_3:th 25
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being Submodule of b2 holds
   ((0). b2) /\ b3 = (0). b2 & b3 /\ (0). b2 = (0). b2;

:: RMOD_3:th 27
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being strict Submodule of b2 holds
   ((Omega). b2) /\ b3 = b3 & b3 /\ (Omega). b2 = b3;

:: RMOD_3:th 28
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed strict RightMod-like RightModStr over b1 holds
   ((Omega). b2) /\ (Omega). b2 = b2;

:: RMOD_3:th 29
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2 holds
b3 /\ b4 is Submodule of b3 + b4;

:: RMOD_3:th 30
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being Submodule of b2
for b4 being strict Submodule of b2 holds
   (b3 /\ b4) + b4 = b4;

:: RMOD_3:th 31
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being Submodule of b2
for b4 being strict Submodule of b2 holds
   b4 /\ (b4 + b3) = b4;

:: RMOD_3:th 32
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2 holds
(b3 /\ b4) + (b4 /\ b5) is Submodule of b4 /\ (b3 + b5);

:: RMOD_3:th 33
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2
      st b3 is Submodule of b4
   holds b4 /\ (b3 + b5) = (b3 /\ b4) + (b4 /\ b5);

:: RMOD_3:th 34
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2 holds
b3 + (b4 /\ b5) is Submodule of (b4 + b3) /\ (b3 + b5);

:: RMOD_3:th 35
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2
      st b3 is Submodule of b4
   holds b4 + (b3 /\ b5) = (b3 + b4) /\ (b4 + b5);

:: RMOD_3:th 36
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
for b5 being strict Submodule of b2
      st b5 is Submodule of b3
   holds b5 + (b4 /\ b3) = (b5 + b4) /\ b3;

:: RMOD_3:th 37
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being strict Submodule of b2 holds
   b3 + b4 = b4
iff
   b3 /\ b4 = b3;

:: RMOD_3:th 38
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being Submodule of b2
for b4, b5 being strict Submodule of b2
      st b3 is Submodule of b4
   holds b3 + b5 is Submodule of b4 + b5;

:: RMOD_3:th 39
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2
      st b3 is Submodule of b4
   holds b3 is Submodule of b4 + b5;

:: RMOD_3:th 40
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4, b5 being Submodule of b2
      st b3 is Submodule of b4 & b5 is Submodule of b4
   holds b3 + b5 is Submodule of b4;

:: RMOD_3:th 41
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2 holds
   ex b5 being Submodule of b2 st
      the carrier of b5 = (the carrier of b3) \/ the carrier of b4
iff
   (b3 is Submodule of b4 or b4 is Submodule of b3);

:: RMOD_3:funcnot 3 => RMOD_3:func 3
definition
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over a1;
  func Submodules A2 -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being strict Submodule of a2 st
             b2 = b1;
end;

:: RMOD_3:def 3
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being set holds
      b3 = Submodules b2
   iff
      for b4 being set holds
            b4 in b3
         iff
            ex b5 being strict Submodule of b2 st
               b5 = b4;

:: RMOD_3:funcreg 1
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over a1;
  cluster Submodules a2 -> non empty;
end;

:: RMOD_3:th 44
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed strict RightMod-like RightModStr over b1 holds
   b2 in Submodules b2;

:: RMOD_3:prednot 1 => RMOD_3:pred 1
definition
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over a1;
  let a3, a4 be Submodule of a2;
  pred A2 is_the_direct_sum_of A3,A4 means
    RightModStr(#the carrier of a2,the addF of a2,the ZeroF of a2,the rmult of a2#) = a3 + a4 &
     a3 /\ a4 = (0). a2;
end;

:: RMOD_3:dfs 4
definiens
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over a1;
  let a3, a4 be Submodule of a2;
To prove
     a2 is_the_direct_sum_of a3,a4
it is sufficient to prove
  thus RightModStr(#the carrier of a2,the addF of a2,the ZeroF of a2,the rmult of a2#) = a3 + a4 &
     a3 /\ a4 = (0). a2;

:: RMOD_3:def 4
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2 holds
   b2 is_the_direct_sum_of b3,b4
iff
   RightModStr(#the carrier of b2,the addF of b2,the ZeroF of b2,the rmult of b2#) = b3 + b4 &
    b3 /\ b4 = (0). b2;

:: RMOD_3:th 46
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
      st b2 is_the_direct_sum_of b3,b4
   holds b2 is_the_direct_sum_of b4,b3;

:: RMOD_3:th 47
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed strict RightMod-like RightModStr over b1 holds
   b2 is_the_direct_sum_of (0). b2,(Omega). b2 & b2 is_the_direct_sum_of (Omega). b2,(0). b2;

:: RMOD_3:th 48
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
for b5 being Coset of b3
for b6 being Coset of b4
      st b5 meets b6
   holds b5 /\ b6 is Coset of b3 /\ b4;

:: RMOD_3:th 49
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2 holds
   b2 is_the_direct_sum_of b3,b4
iff
   for b5 being Coset of b3
   for b6 being Coset of b4 holds
      ex b7 being Element of the carrier of b2 st
         b5 /\ b6 = {b7};

:: RMOD_3:th 50
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed strict RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2 holds
   b3 + b4 = b2
iff
   for b5 being Element of the carrier of b2 holds
      ex b6, b7 being Element of the carrier of b2 st
         b6 in b3 & b7 in b4 & b5 = b6 + b7;

:: RMOD_3:th 51
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
for b5, b6, b7, b8, b9 being Element of the carrier of b2
      st b2 is_the_direct_sum_of b3,b4 & b5 = b6 + b7 & b5 = b8 + b9 & b6 in b3 & b8 in b3 & b7 in b4 & b9 in b4
   holds b6 = b8 & b7 = b9;

:: RMOD_3:th 52
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
      st b2 = b3 + b4 &
         (ex b5 being Element of the carrier of b2 st
            for b6, b7, b8, b9 being Element of the carrier of b2
                  st b5 = b6 + b7 & b5 = b8 + b9 & b6 in b3 & b8 in b3 & b7 in b4 & b9 in b4
               holds b6 = b8 & b7 = b9)
   holds b2 is_the_direct_sum_of b3,b4;

:: RMOD_3:funcnot 4 => RMOD_3:func 4
definition
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over a1;
  let a3 be Element of the carrier of a2;
  let a4, a5 be Submodule of a2;
  assume a2 is_the_direct_sum_of a4,a5;
  func A3 |--(A4,A5) -> Element of [:the carrier of a2,the carrier of a2:] means
    a3 = it `1 + (it `2) & it `1 in a4 & it `2 in a5;
end;

:: RMOD_3:def 5
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being Element of the carrier of b2
for b4, b5 being Submodule of b2
   st b2 is_the_direct_sum_of b4,b5
for b6 being Element of [:the carrier of b2,the carrier of b2:] holds
      b6 = b3 |--(b4,b5)
   iff
      b3 = b6 `1 + (b6 `2) & b6 `1 in b4 & b6 `2 in b5;

:: RMOD_3:th 57
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
for b5 being Element of the carrier of b2
      st b2 is_the_direct_sum_of b3,b4
   holds (b5 |--(b3,b4)) `1 = (b5 |--(b4,b3)) `2;

:: RMOD_3:th 58
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3, b4 being Submodule of b2
for b5 being Element of the carrier of b2
      st b2 is_the_direct_sum_of b3,b4
   holds (b5 |--(b3,b4)) `2 = (b5 |--(b4,b3)) `1;

:: RMOD_3:funcnot 5 => RMOD_3:func 5
definition
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over a1;
  func SubJoin A2 -> Function-like quasi_total Relation of [:Submodules a2,Submodules a2:],Submodules a2 means
    for b1, b2 being Element of Submodules a2
    for b3, b4 being Submodule of a2
          st b1 = b3 & b2 = b4
       holds it .(b1,b2) = b3 + b4;
end;

:: RMOD_3:def 6
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being Function-like quasi_total Relation of [:Submodules b2,Submodules b2:],Submodules b2 holds
      b3 = SubJoin b2
   iff
      for b4, b5 being Element of Submodules b2
      for b6, b7 being Submodule of b2
            st b4 = b6 & b5 = b7
         holds b3 .(b4,b5) = b6 + b7;

:: RMOD_3:funcnot 6 => RMOD_3:func 6
definition
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over a1;
  func SubMeet A2 -> Function-like quasi_total Relation of [:Submodules a2,Submodules a2:],Submodules a2 means
    for b1, b2 being Element of Submodules a2
    for b3, b4 being Submodule of a2
          st b1 = b3 & b2 = b4
       holds it .(b1,b2) = b3 /\ b4;
end;

:: RMOD_3:def 7
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1
for b3 being Function-like quasi_total Relation of [:Submodules b2,Submodules b2:],Submodules b2 holds
      b3 = SubMeet b2
   iff
      for b4, b5 being Element of Submodules b2
      for b6, b7 being Submodule of b2
            st b4 = b6 & b5 = b7
         holds b3 .(b4,b5) = b6 /\ b7;

:: RMOD_3:th 63
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1 holds
   LattStr(#Submodules b2,SubJoin b2,SubMeet b2#) is non empty Lattice-like LattStr;

:: RMOD_3:th 64
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1 holds
   LattStr(#Submodules b2,SubJoin b2,SubMeet b2#) is non empty Lattice-like lower-bounded LattStr;

:: RMOD_3:th 65
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1 holds
   LattStr(#Submodules b2,SubJoin b2,SubMeet b2#) is non empty Lattice-like upper-bounded LattStr;

:: RMOD_3:th 66
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1 holds
   LattStr(#Submodules b2,SubJoin b2,SubMeet b2#) is non empty Lattice-like bounded LattStr;

:: RMOD_3:th 67
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed RightMod-like RightModStr over b1 holds
   LattStr(#Submodules b2,SubJoin b2,SubMeet b2#) is non empty Lattice-like modular LattStr;